add pg_model abstract class