some experimental modification for hhvm