added some test cases
and wrote some preliminary interface classes for modules (I though I need them for the test cases, but then realized I actually don't need them. But eventually we will need them).