Fix #2,#3 and #1