added a hefty amount of functionality. IDK if it will every be done