Make this more generic for everyone to be able to use and then update everything