initial implementation of modules