to be used in a gem: making an object behave like an array & building methods for it.