implement class controller and subject, main adapted