uncommented some functions