fixed several bugs (and refactored many methods to be wrapped in Try's) thanks to specs