OK but it does throw exceptions - so maybe we need to put it in a try/catch instead