improve attempt2