update after code review