add vec2 dependency
reduce allocations via temporary var