rearranging calling method