better structured, functions added
just following the guide, step 2: evaluation
template haskell!!!
remove useless codes and finished exercise 2/1