moved UI to interface because it isn't really user facing