package App;
    use OX;
    
    has model => (is => 'ro', isa => 'Model');
    has view  => (is => 'ro', isa => 'View');
    has controller => (
        is           => 'ro',
        isa          => 'Controller',
        dependencies => ['model', 'view'],
    );
    
    router as {
        route '/'         => 'root.index';
        route '/inc'      => 'root.inc';
        route '/dec'      => 'root.dec';
        route '/reset'    => 'root.reset';
        route '/set/:num' => 'root.set', (
            num => { isa => 'Int' },
        );
    }, (root => 'controller');
    
    __PACKAGE__->meta->make_immutable;
    1;