I suggest starting here and here.