first pass at fully functional rendering