modified classes, and add referee