manual merge:
1.update my code(teropi) to empatzero's code.
2.apply the rellla's code to avoid conflict.