Refactory: combine with new design for fast version