I’m not sure what you mean by “does not work”, but I can explain a point about using EEs that might help.
When you translate your project, an .c will be created in the src/ folder. You then need to copy that file to the gen/ folder and put your implementation of the internals into the functions. Next time you translate, the empty/structural EE will be created in the src/ folder, then the build process will copy the .c from the gen/ folder into the src/ overwriting the blank one that is there.
So, when you add a new operation, you need to edit the function signature into the .c in the gen/ folder so at the end of translation your full-fledged EE ends up in src/ .
You might also check out Module 18 – Realized components in the learning course.