spent way too much time mastering, hope I got it right