Added an abstract "template" for other problem classes