split/cleaned controllers, moved message stuff to service