first step of module refactoring
has_value_type style
modules dpes
next step of refactor
module refactor