Refactor abstracts itemui

This is still under WIP but I'd like to open it for testing and discussion.