fixes #1 fixes #2 fixes #3