renamed cli module to core
implemented hooks with using pyobservable
use new-class-style for cli classes