added a bunch of ui features