fixes #1, fixes #2, fixes #3