Updated with suggested fixes and changes