Why is this an array? Multiple properties seem to be a better idea to me as subclasses can partially overwrite data more cleanly.