optimze the cap