1. add abstract modul