Refactored to use Ako's Root system