implement GET, PUT, DELETE API