you still have to rewrite 2 methods