improved interface