fixes #1 and #2 and #4