add support for cl events
fleshed out interface class