Closes #69, #64, #66, #50, #48, #14