models extend from parent abstract class