Split code into categories, implement touch and highlight, doesn't work well