closes #117 Reviewed-on: #133
closes #118 closes #119 Reviewed-on: #128
closes #69 closes #107 Reviewed-on: #101