add ModuleManager

cache result/profile_stats
detect source file updated