update delete method, clean up factory