Since almost every method in this class checks ```if hash?``` before doing anything and immediately splits into two branches, you should look into splitting this into multiple classes (possibly a base with your common logic, and an Array and Hash subclass). I think it would simplify things