Add structure.
Fix structure.
Make semantic