basic functions done.