abstract model class, meta programming whaaaa?