Convert Research Phase to a state machine
 * That is a lot more code...not sure what I think
Clean up interface for clients of research phase
Finish up research phase
Formatting Fixes