removed second argument, condition optimized, names modified