accepts arrays as val type
version pump