refactor policy provider & add kitchen test