* maybe that wasn't a good idea * we don't need a copy because you can't clear the func after setting it * no longer a template - move logic to cpp * fix tests * rename to avoid object collision