make code easier to read
add more benchmark, hotwater and amatch