Closes #486, Closes #460, Closes #496, Closes #506, Closes #507, Closes #508, Closes #509, Closes #511