Refactor to reuse more code from parent