code refactor, documentation, no logic change