Redo Shavar abstraction as a module