added a shitload of functions

i've been pretty noncommittal recently