code cleanup and bug fixes.