implement $$phase