Fix #33 Close #9 Close #30