Feature/categories and tags

Merge #18 changes into develop branch originating from #17. Tidied up code to pass Rubocop.