updated signature with subclass