fix#27
fix#33
fix#34
fix#33 again