adding keyboard navigation and stuff