added pooling and reused imaginary array