clean up and bug fixes