add option classes, major refactoring
complete language backend integration with event layer
update php-cs-fixer travis config
cs fix