fixed #53
fixed #50
fixed #44
fixed #41
fixed #40