added Module data structure,  module registration