some light refactoring of states and model usage

@simpulton for your review
Was able to simplify this in the controller to keep it a little cleaner. Put the complexity down in the model, where it belongs.