Done Main Part

Need to be tested !!!