initial commit
Fix #4
Fix #5 and #2
fix #2
Fix #1
Fix #6
Fix #7
Fix #8
fix #9
Fix #10
Fix #11, #3
Fix #12
temp commit