improved interface, all working