diff --git a/extras/hs-test/address_allocator.go b/extras/hs-test/address_allocator.go
new file mode 100644
index 0000000..c08f889
--- /dev/null
+++ b/extras/hs-test/address_allocator.go
@@ -0,0 +1,42 @@
+package main
+
+import "fmt"
+
+type AddressCounter = int
+
+type Ip4AddressAllocator struct {
+	networks map[int]AddressCounter
+}
+
+func (a *Ip4AddressAllocator) AddNetwork(networkNumber int) {
+	a.networks[networkNumber] = 1
+}
+
+func (a *Ip4AddressAllocator) NewIp4InterfaceAddress(inputNetworkNumber ...int) (string, error) {
+	var networkNumber int = 0
+	if len(inputNetworkNumber) > 0 {
+		networkNumber = inputNetworkNumber[0]
+	}
+
+	if _, ok := a.networks[networkNumber]; !ok {
+		a.AddNetwork(networkNumber)
+	}
+
+	numberOfAddresses := a.networks[networkNumber]
+
+	if numberOfAddresses == 254 {
+		return "", fmt.Errorf("no available IPv4 addresses")
+	}
+
+	address := fmt.Sprintf("10.10.%v.%v/24", networkNumber, numberOfAddresses)
+	a.networks[networkNumber] = numberOfAddresses + 1
+
+	return address, nil
+}
+
+func NewIp4AddressAllocator() *Ip4AddressAllocator {
+	var ip4AddrAllocator = new(Ip4AddressAllocator)
+	ip4AddrAllocator.networks = make(map[int]AddressCounter)
+	ip4AddrAllocator.AddNetwork(0)
+	return ip4AddrAllocator
+}
