tidied up the interface and added control buttons