shuffle things around to rely on api calls instead of hc internals