Since the `project().getTarget()` function calls `new Target()` which throws an IOException, I decided to throw it and handle it at this level.     Would it make sense to handle the exception in the `Project` class itself? 