sumbim hm4 part1
refactor
hm4 part2