Fixes #3 Fixes #4 Fixes #5 Fixes #6 Fixes #7