Issue #13 refactor tests, add new modules and tests