add rest of functionality
add rest of things