easy_2 complete
add hard_2, not finished