refactoring to actually extend the original class