promise stuff all worked out, just need more data-munging