let's subclass this way instead!