all functions written(i think?)