Add modules interface and various module classes