initial pass at template