putting all code in one file only. to make it readable