ArrayOf* types ganeration as separate classes