ALL FUNCTION DONE

TODO: CLEAN UP CODES