Add abstract event client class