diff --git a/ip-allocator/allocator.go b/ip-allocator/allocator.go
index ff474b6..e5a64cb 100644
--- a/ip-allocator/allocator.go
+++ b/ip-allocator/allocator.go
@@ -9,10 +9,10 @@
 )
 
 type Config struct {
-	Port         int    `default:"4242"`
-	Listen       string `default:"0.0.0.0"`
-	StartAddress string `default:"10.0.0.2" envconfig:"start_address"`
-	AddressCount uint   `default:"252" envconfig:"address_count"`
+	Port    int    `default:"4242"`
+	Listen  string `default:"0.0.0.0"`
+	Network string `default:"10.0.0.0/24"`
+	Skip    int    `default:"1"`
 }
 
 type Context struct {
@@ -31,11 +31,11 @@
 	log.Printf(`Configuration:
 	    Listen:       %s
 	    Port:         %d
-	    StartAddress: %s
-	    AddressCount: %d`, config.Listen, config.Port, config.StartAddress, config.AddressCount)
+	    Network:      %s
+	    SKip:         %d`, config.Listen, config.Port, config.Network, config.Skip)
 
 	context.storage = &MemoryStorage{}
-	context.storage.Init(config.StartAddress, config.AddressCount)
+	context.storage.Init(config.Network, config.Skip)
 
 	router := mux.NewRouter()
 	router.HandleFunc("/allocations/{mac}", context.ReleaseAllocationHandler).Methods("DELETE")
diff --git a/ip-allocator/storage.go b/ip-allocator/storage.go
index 26be353..ac5ce6d 100644
--- a/ip-allocator/storage.go
+++ b/ip-allocator/storage.go
@@ -1,7 +1,14 @@
 package main
 
+import (
+	"math"
+	"net"
+	"strconv"
+	"strings"
+)
+
 type Storage interface {
-	Init(start string, count uint) error
+	Init(networkIn string, skip int) error
 	Get(mac string) (string, error)
 	GetAll() map[string]string
 	Put(mac, ip string) error
@@ -16,17 +23,38 @@
 	readIdx, writeIdx, size uint
 }
 
-func (s *MemoryStorage) Init(start string, count uint) error {
-	ip, err := ParseIP(start)
+func (s *MemoryStorage) Init(networkIn string, skip int) error {
+	_, network, err := net.ParseCIDR(networkIn)
 	if err != nil {
 		return err
 	}
+	start, _, err := net.ParseCIDR(network.String())
+	if err != nil {
+		return err
+	}
+
+	parts := strings.Split(network.String(), "/")
+	ip, err := ParseIP(start.String())
+	if err != nil {
+		return err
+	}
+	bits, err := strconv.Atoi(parts[1])
+	if err != nil {
+		return err
+	}
+	hostCount := int(math.Pow(2, float64(32-bits))) - skip
 	s.readIdx = 0
 	s.writeIdx = 0
-	s.size = count
+	s.size = uint(hostCount)
 	s.allocated = make(map[string]IPv4)
-	s.available = make([]IPv4, count)
-	for i := uint(0); i < count; i += 1 {
+	s.available = make([]IPv4, hostCount)
+	for i := 0; i < skip; i += 1 {
+		ip, err = ip.Next()
+		if err != nil {
+			return err
+		}
+	}
+	for i := 0; i < hostCount; i += 1 {
 		s.available[i] = ip
 		ip, err = ip.Next()
 		if err != nil {
