reduced to one class - but will not allow different callbacks to have same name
still mucking about with python callbacks
add priority