Fixes #45
Fixes #21
Fixes #41