#14 move encoding implementation source files into a subdirectory