initial implementation of modules diagrim