Interface framework, based on EventEmitter