added dynamic arrays