added a bunch of functionality
added a bunch of functionality