implement 2nd interface with extra keys