Probably going to need to rewrite how this works again.