Better messaging and unit tests for cases when API used in the incorrect
order.