Closes #25 Reviewed-on: #86
Closes #83 Reviewed-on: #84
Closes #81 Reviewed-on: #82
Closes #77 Reviewed-on: #80