Second try at Sanic3, this time using component patterns