FIX: make phrase_by_id always return a node