make fields more visible so we can subclass Promise with our own unique promise to gain functionality
Merge branch 'visibility' into latest