Added state to Surface instead of booleans, added Menu controller