reworked the interface.