Close #3
Close #5
Close #21
Close #4
Close #6
Close #19
Close #2 Close #5
Close #20
Merge branch '1.0-alvin'