[#1760] make fields more visible so we can subclass Promise with our own unique promise to gain functionality