changes to ProtoModel initFromArray, can now accept more types of arguments