internally use a vector to store keyboard map