move controller logic to service.
lots of other neat stuff