reduced boilerplate
templates still have a bit of an issue with whitespace.