Closes #24
Fixes #21
Closes #20
Fixes #19
Fixes #17