add multi parent system
restructure all