Finished implement basic functions