fixed #54. Rewrote `iterator_policy.hpp`. Now properly