make target for watch & serve
separate template into multiple files
refactor class names
move code to src folder
fix tests