ArrayOf* types ganeration as separate classes

Fix #160