bug fixes and code cleaning