Added API errors (not yet subscribed, already subscribed), tests, refactored controllers to throw them