Feature/type modules

#4