wip - put is awkward, I think this needs some redesign