ufm: updates

* refactor a lot of code
* remade interface library and actually add it this time