alternative interface