[+] model abstract