Error checking, adding some more text (and no doubt errors)