majority of functionality working