add input handler
state needs update function
renderer needs draw function