Probably going to recycle this code later.