correct function names and stuff