add tait for inner cache and extend ArrayUtils