alternative module format + spec refactoring