Updated to be a little cleaner