added an extend utility method to abstract inheritance functionality