added some other functions in its basic form