add Timer class, methods
add new surface
update helper functions
update main