refactor

- add support for loading modules
- make tests actually test something