Fixes #30
Fixes #31
Fixes #29, Fixes #32