Closes #36
Closes #37
Closes #38