further development on promise implementation, discussed in README