Adds a template object and starts work on rendering

Also makes a few classes abstract.