added testing infrastructure
refactored module, removed params class