move to separated method