fuck me this took way too long