basic keyboard mapping implementation