Add template files
Add utils module
Add some exceptions
Update publisher, add main entry points