fixes #3
fixes #6
fixes #8
fixes #9