adding base module
module skeleton, interfaces and abstracts