This is based on the style of praekelt/switchboard-go but I don't think it needs to be a deep copy