merge wormhead implementation with master