just a bunch of function.