tested all functions, good to go, still need comments