finished the crud interface