fixes #104 by moving the templates into dynamically generated dart code