refactor cap2