Improved design and reorganized the codebase to use markdown templates