use private val, add logs and license headers