ArrayOf* types ganeration as separate classes

Fix #160 in ```3.x``` branch