Add built-in composition engine instead of npm module