refactor code, plus allow for deep verbose