Closes #145. Closes #156. Closes #167.