diff --git a/engine/engine.go b/engine/engine.go
index 8da38d52c1b7dcd9f8e56bbd378e66ba8b498844..4365fddbd26dc362bdabfd507fb51cb8716f1477 100644
--- a/engine/engine.go
+++ b/engine/engine.go
@@ -200,7 +200,7 @@ func (e *Engine) processRepeat(node *html.Node, attr html.Attribute) *Engine {
 			errors = runNode(node, data, key, item, nextSibling, parent)
 
 		}
-		
+
 	default:
 		e.errors = append(e.errors, &UnsupportedTypeError{Message: "Unsupported iterator type", NodeType: node.Type})
 	}
@@ -626,6 +626,8 @@ func (e *Engine) processAttributes(node *html.Node, attr html.Attribute) *Engine
 			cVal = val.(string)
 		}
 
+		node.Attr = removeAttribute(node.Attr, key)
+
 		node.Attr = append(node.Attr, html.Attribute{
 			Key: key,
 			Val: cVal,
diff --git a/engine/engine_test.go b/engine/engine_test.go
index 222fe6c05d7c48c96e4b334324bbcaa992d887f8..c7884953bb2468a5a8e3ab9dd8e1961979c4f609 100644
--- a/engine/engine_test.go
+++ b/engine/engine_test.go
@@ -1,10 +1,11 @@
 package engine
 
 import (
-	"github.com/stretchr/testify/assert"
-	"golang.org/x/net/html"
 	"strings"
 	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"golang.org/x/net/html"
 )
 
 func TestNewEngine(t *testing.T) {
@@ -56,6 +57,14 @@ func TestProcessHtml(t *testing.T) {
 		expected  string
 		data      map[any]any
 	}{
+		{
+			html:      `<!DOCTYPE html><html lang="en" data-attributes="lang path:lang"><head><body>`,
+			hasErrors: false,
+			expected:  `<!DOCTYPE html><html lang="en"><head></head><body></body></html>`,
+			data: map[any]any{
+				"lang": "en",
+			},
+		},
 		{
 			html:      `<div data-test="test"></div>`,
 			hasErrors: false,
diff --git a/go.mod b/go.mod
index 481e4b52a2dab810aa9c05bab43458b1ac7c7f51..83d3a11f6ef785ca79a2cc5313665459f4010d91 100644
--- a/go.mod
+++ b/go.mod
@@ -3,13 +3,16 @@ module gitlab.schukai.com/oss/libraries/go/markup/html
 go 1.19
 
 require (
+	github.com/andybalholm/cascadia v1.3.1
 	github.com/stretchr/testify v1.8.1
+	gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0
 	golang.org/x/net v0.2.0
 )
 
 require (
-	github.com/andybalholm/cascadia v1.3.1 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
 	github.com/pmezard/go-difflib v1.0.0 // indirect
+	github.com/volker-schukai/tokenizer v1.0.0 // indirect
+	gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff --git a/go.sum b/go.sum
index efab6476c3b78a8b9251515f9b392ac4d353f5df..f87961434f738e58aa6e5943e576e2981639e15c 100644
--- a/go.sum
+++ b/go.sum
@@ -8,10 +8,17 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
 github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/volker-schukai/tokenizer v1.0.0 h1:wF4haFoCodq7lgAk8c+th/DZmpFpL2WVD8wDzAGU1mA=
+github.com/volker-schukai/tokenizer v1.0.0/go.mod h1:LPw7lLIxUnZgeg96818N7IvwLE1x8ya31J/Aa0aCq9M=
+gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0 h1:JVxMHiA8zFVjJDhNl65XeYrhdMkzB+5dyrBUEZ982WU=
+gitlab.schukai.com/oss/libraries/go/utilities/data.git v0.2.0/go.mod h1:BsR4Y9jsvISplkW6UoLFRGxQX69/AUmP1SXRwWhx31o=
+gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.4.0 h1:eAEsq3lsHwMe5Zz71vNab5csPtp8S+i5zFPmNnDPFDg=
+gitlab.schukai.com/oss/libraries/go/utilities/pathfinder v0.4.0/go.mod h1:UvdD4NAf3gLKYafabJD7e9ZCOetzM9JZ9y4GkZukPVU=
 golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU=
 golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=