added a renderer file to handle all view render logic