Enahanced Work() without Ready() behaviour:

Now if you try to call Work() without calling Ready(), it will trigger an attempt to run Ready(), and will only panic if there is an error.

This is better than my previous because it'll generally just work rather than panicing. And if the user wants to trap the error, they can still call Ready themselves and this enhancement won't obstruct them.