I almost made this like the original question 3