big keyboard update

also I started using javadoc comments to help clean things up