Add prototype implementation and idea, modify some name of the file