including the whole UE api because the classes are all interdependent anyway