extract API logic from Catalyst::Controller
Don't use Moose. Use Moo'
update Test files