fixes #4, fixes #5, fixes #6