Better keyboard framework