[major] Use the same prototype pattern
[major] Use fuse instead of predefine directly