Added module.hpp (including implementation and unit test) from prototype II