Depends upon how entailed of a problem you feel you are ready to tackle. Solving the problem we were confronted with for the 2013 MWSUG meeting Expert Panel presentation involved ALL of the things you are asking for .. possibly more than you really want.