Now using abstract template as main