refactor, looking for possibility of replacing float4 with float3