Changed exception policy: throw exceptions from functions, don't catch them