I'd much prefer that you have this function throw an exception if it is unable to generate and save subs successfully, and have the code that calls this function catch that exception if necessary. Returning `True` or `False` to indicate if the function was successful or not is too easy to forget when you're calling this function -- and then you end up with errors passing silently, because no one remembered to check for them.