Cleanup and documentation

Also added explicit forbidding of nullptr_t