fixes #32
fixes #29
fixes #28
fixes #30, #26
fixes #34