More promises, Add some catches, refactoring #10