major rewrite to UI, added partial functionality