refs: #796 pr: #851
[closes #793, closes #794, closes #795, closes #796, closes #797, closes #798, closes #799, closes #800, closes #801, closes #802]