preparer core and teacher for distribution. extract some interfaces