hopefully people can figure out how to use this