added a lot of ui stuff