Halved the size of required arrays.  Now fully polymorphic