what does this method do ? could you add a short description as it is non-trivial