adds UOM class and some hacky implementation around