clean version with dynamic binding - no debug statements