move out direct call from loops