all methods implemented, switching to switch stmts