no need for extra local var