code reviewed and changed