use SmartPsiElementPointer