fully implemented keyboard positioning