What is the else condition here? if these conditions are not met surely there will be a `NameError` later on? Also this is not tested ;)