Fixes #384, closes #242, closes #362, closes #572, closes #577, closes #650, closes #745, closes #935, closes #1076, closes #1079, closes #1105, closes #1561