keyboard ui can now be used.
some tidy/refactor work pending i think....