use null for EmptyNode