Refactor to subclass