made things a little more generic, started to integrate the UI