refactor software so they are taken from a template file