added a bunch of useful stuff