refactoring, reduce core files modification, additional models for hooks emulation & tools, update docs