uncommented some parts