fixes #27
fixes #28
fixes #29