Refactored until 2nd exercise (impacts structure templates)