you should move the attr_readers to above the initialize method