Working Version. No extra credit (yet?)