add Events class
modularize spec