lots and lots of work on gui...