add abstract methods model