package MojoMojo::Extensions::Counter;

use strict;
use warnings;

use base qw(MojoMojo::Extension)# MM::Extension ISA Catalyst::Controller

sub index :Path :Args(0) {
    my ( $self$c ) = @_;
    $c->detach('view');
}

sub view :Local {
    my ( $self$c ) = @_;
    @{$c->stash}{qw(current_view template count)} = ('TT''extensions/count.tt'$c->session->{count} || 0);
}

sub add :Local {
    my ( $self$c ) = @_;
    my $session = $c->session;
    my $count = $session->{count} || 0;
    $session->{count} = $count + 1;
    $c->res->redirect($c->uri_for('view'));
}

sub subtract :Local {
    my ( $self$c ) = @_;
    my $session = $c->session;
    my $count = $session->{count} || 0;
    $session->{count} = $count - 1;
    $c->res->redirect($c->uri_for('view'));
}

Issues with current implementation