Fixed #24
Fixed #29
Fixed #38
Fixed #34