added advanceBy() method and isLeap() method