added exceptions when invalid versions are used
added support for descending in translate