It works, but I don't like the structure.