simplifies class definition and removes extend capability from public api