tried to improve in the new PR