refractor
can use a modifier function to subclass object