adding crud functionality