Split app.coffee into components for better organization