adding basic keyboard controller code as a starting point