Extend the example so we can check more features
Add the function item abstraction
ADd the object item abstraction
Add common code for items
Make the private header behave like in other libs
Include the new files on the build
Sanitize the code to