using HandlerFactory to invoke handler
presentation layer shouldn't know about handler
factory shouldn't know about model