Fixes #3, Fixes #4, Fixes #2, Fixes #1