two steps init for keys