Closes #144, #52, #145, #51, #150, #146, #147, #155, #60, #61, #158