added OutOfDataException to advance
removed OutOfDataException, now handling this via return values