added new internal utility framework