clean up and bug fixes;