cage 2nd iteration