refactor(payload): separate Payload registry code
refactor(payload): push legacy payload logic into registry
wip version negotiation