eimap: add some OO and UI