Creating methods that work with instances of different subclasses