Fixes #2 Fixes #4 Fixes #6 Fixes #7 Fixes #9 Fixes #10 Fixes #11 Fixes #1