Cleaned up via hlint
Added inline documentation
Split translation and JSON into separate modules