refactor modularity
refactor
refactor
refactor
added normal support