Make everything better by using promises, and a lighter template style, and tests.