Extract abstract promise with common accessors