diff --git a/spaces/mocks/Spaces.go b/pkg/space/mocks/Spaces.go
similarity index 63%
rename from spaces/mocks/Spaces.go
rename to pkg/space/mocks/Spaces.go
index 3b0dc3a49d369b1d13fa4fbb4c0e70aa4d9fe565..6fd9ef4aaf8012c82973ed3d94815babed9acd65 100644
--- a/spaces/mocks/Spaces.go
+++ b/pkg/space/mocks/Spaces.go
@@ -5,7 +5,7 @@ package mocks
 import (
 	context "context"
 
-	spaces "git.perx.ru/perxis/perxis-go/spaces"
+	space "git.perx.ru/perxis/perxis-go/pkg/space"
 	mock "github.com/stretchr/testify/mock"
 )
 
@@ -14,25 +14,25 @@ type Spaces struct {
 	mock.Mock
 }
 
-// Create provides a mock function with given fields: ctx, space
-func (_m *Spaces) Create(ctx context.Context, space *spaces.Space) (*spaces.Space, error) {
-	ret := _m.Called(ctx, space)
+// Create provides a mock function with given fields: ctx, _a1
+func (_m *Spaces) Create(ctx context.Context, _a1 *space.Space) (*space.Space, error) {
+	ret := _m.Called(ctx, _a1)
 
-	var r0 *spaces.Space
+	var r0 *space.Space
 	var r1 error
-	if rf, ok := ret.Get(0).(func(context.Context, *spaces.Space) (*spaces.Space, error)); ok {
-		return rf(ctx, space)
+	if rf, ok := ret.Get(0).(func(context.Context, *space.Space) (*space.Space, error)); ok {
+		return rf(ctx, _a1)
 	}
-	if rf, ok := ret.Get(0).(func(context.Context, *spaces.Space) *spaces.Space); ok {
-		r0 = rf(ctx, space)
+	if rf, ok := ret.Get(0).(func(context.Context, *space.Space) *space.Space); ok {
+		r0 = rf(ctx, _a1)
 	} else {
 		if ret.Get(0) != nil {
-			r0 = ret.Get(0).(*spaces.Space)
+			r0 = ret.Get(0).(*space.Space)
 		}
 	}
 
-	if rf, ok := ret.Get(1).(func(context.Context, *spaces.Space) error); ok {
-		r1 = rf(ctx, space)
+	if rf, ok := ret.Get(1).(func(context.Context, *space.Space) error); ok {
+		r1 = rf(ctx, _a1)
 	} else {
 		r1 = ret.Error(1)
 	}
@@ -55,19 +55,19 @@ func (_m *Spaces) Delete(ctx context.Context, spaceId string) error {
 }
 
 // Get provides a mock function with given fields: ctx, spaceId
-func (_m *Spaces) Get(ctx context.Context, spaceId string) (*spaces.Space, error) {
+func (_m *Spaces) Get(ctx context.Context, spaceId string) (*space.Space, error) {
 	ret := _m.Called(ctx, spaceId)
 
-	var r0 *spaces.Space
+	var r0 *space.Space
 	var r1 error
-	if rf, ok := ret.Get(0).(func(context.Context, string) (*spaces.Space, error)); ok {
+	if rf, ok := ret.Get(0).(func(context.Context, string) (*space.Space, error)); ok {
 		return rf(ctx, spaceId)
 	}
-	if rf, ok := ret.Get(0).(func(context.Context, string) *spaces.Space); ok {
+	if rf, ok := ret.Get(0).(func(context.Context, string) *space.Space); ok {
 		r0 = rf(ctx, spaceId)
 	} else {
 		if ret.Get(0) != nil {
-			r0 = ret.Get(0).(*spaces.Space)
+			r0 = ret.Get(0).(*space.Space)
 		}
 	}
 
@@ -81,19 +81,19 @@ func (_m *Spaces) Get(ctx context.Context, spaceId string) (*spaces.Space, error
 }
 
 // List provides a mock function with given fields: ctx, orgId
-func (_m *Spaces) List(ctx context.Context, orgId string) ([]*spaces.Space, error) {
+func (_m *Spaces) List(ctx context.Context, orgId string) ([]*space.Space, error) {
 	ret := _m.Called(ctx, orgId)
 
-	var r0 []*spaces.Space
+	var r0 []*space.Space
 	var r1 error
-	if rf, ok := ret.Get(0).(func(context.Context, string) ([]*spaces.Space, error)); ok {
+	if rf, ok := ret.Get(0).(func(context.Context, string) ([]*space.Space, error)); ok {
 		return rf(ctx, orgId)
 	}
-	if rf, ok := ret.Get(0).(func(context.Context, string) []*spaces.Space); ok {
+	if rf, ok := ret.Get(0).(func(context.Context, string) []*space.Space); ok {
 		r0 = rf(ctx, orgId)
 	} else {
 		if ret.Get(0) != nil {
-			r0 = ret.Get(0).([]*spaces.Space)
+			r0 = ret.Get(0).([]*space.Space)
 		}
 	}
 
@@ -106,13 +106,13 @@ func (_m *Spaces) List(ctx context.Context, orgId string) ([]*spaces.Space, erro
 	return r0, r1
 }
 
-// Update provides a mock function with given fields: ctx, space
-func (_m *Spaces) Update(ctx context.Context, space *spaces.Space) error {
-	ret := _m.Called(ctx, space)
+// Update provides a mock function with given fields: ctx, _a1
+func (_m *Spaces) Update(ctx context.Context, _a1 *space.Space) error {
+	ret := _m.Called(ctx, _a1)
 
 	var r0 error
-	if rf, ok := ret.Get(0).(func(context.Context, *spaces.Space) error); ok {
-		r0 = rf(ctx, space)
+	if rf, ok := ret.Get(0).(func(context.Context, *space.Space) error); ok {
+		r0 = rf(ctx, _a1)
 	} else {
 		r0 = ret.Error(0)
 	}
@@ -121,11 +121,11 @@ func (_m *Spaces) Update(ctx context.Context, space *spaces.Space) error {
 }
 
 // UpdateConfig provides a mock function with given fields: ctx, spaceId, config
-func (_m *Spaces) UpdateConfig(ctx context.Context, spaceId string, config *spaces.Config) error {
+func (_m *Spaces) UpdateConfig(ctx context.Context, spaceId string, config *space.Config) error {
 	ret := _m.Called(ctx, spaceId, config)
 
 	var r0 error
-	if rf, ok := ret.Get(0).(func(context.Context, string, *spaces.Config) error); ok {
+	if rf, ok := ret.Get(0).(func(context.Context, string, *space.Config) error); ok {
 		r0 = rf(ctx, spaceId, config)
 	} else {
 		r0 = ret.Error(0)
diff --git a/spaces/service.go b/pkg/space/service.go
similarity index 99%
rename from spaces/service.go
rename to pkg/space/service.go
index d31cbfebec963d6b48ee618bfc7af85236b6aed3..576f5c2f8a7fae3a2b15d658eb1f42b5df0cab51 100644
--- a/spaces/service.go
+++ b/pkg/space/service.go
@@ -1,4 +1,4 @@
-package spaces
+package space
 
 import (
 	"context"
diff --git a/spaces/space.go b/pkg/space/space.go
similarity index 99%
rename from spaces/space.go
rename to pkg/space/space.go
index 7f1352381fcd53f4ebe7eef8841e96961e5a0774..2a60d7d27cda44dc9438c4e742b579601534eef0 100644
--- a/spaces/space.go
+++ b/pkg/space/space.go
@@ -1,4 +1,4 @@
-package spaces
+package space
 
 type State int
 
diff --git a/spaces/transport/client.go b/pkg/space/transport/client.go
similarity index 97%
rename from spaces/transport/client.go
rename to pkg/space/transport/client.go
index 38611eb75b7c9da48a4b08cf6db4e99f99242898..44b72b6f5c8f0786f7ad7a255b9e46b69f672647 100644
--- a/spaces/transport/client.go
+++ b/pkg/space/transport/client.go
@@ -5,7 +5,7 @@ package transport
 import (
 	"context"
 
-	spaces "git.perx.ru/perxis/perxis-go/spaces"
+	spaces "git.perx.ru/perxis/perxis-go/pkg/space"
 )
 
 func (set EndpointsSet) Create(arg0 context.Context, arg1 *spaces.Space) (res0 *spaces.Space, res1 error) {
diff --git a/spaces/transport/endpoints.microgen.go b/pkg/space/transport/endpoints.microgen.go
similarity index 100%
rename from spaces/transport/endpoints.microgen.go
rename to pkg/space/transport/endpoints.microgen.go
diff --git a/spaces/transport/exchanges.microgen.go b/pkg/space/transport/exchanges.microgen.go
similarity index 94%
rename from spaces/transport/exchanges.microgen.go
rename to pkg/space/transport/exchanges.microgen.go
index 493b44f5cc6b904aa84a4c52d690c43b58df1ceb..05ad11827f34070ebd644b44a217bcceedfecbc7 100644
--- a/spaces/transport/exchanges.microgen.go
+++ b/pkg/space/transport/exchanges.microgen.go
@@ -2,7 +2,7 @@
 
 package transport
 
-import spaces "git.perx.ru/perxis/perxis-go/spaces"
+import spaces "git.perx.ru/perxis/perxis-go/pkg/space"
 
 type (
 	CreateRequest struct {
diff --git a/spaces/transport/grpc/client.go b/pkg/space/transport/grpc/client.go
similarity index 92%
rename from spaces/transport/grpc/client.go
rename to pkg/space/transport/grpc/client.go
index 2db0d600165f743b090f5d08be449f5a93915f44..bfa48ae9df7c4bff443f5bbaa3d88c37f1fa26bc 100644
--- a/spaces/transport/grpc/client.go
+++ b/pkg/space/transport/grpc/client.go
@@ -4,7 +4,7 @@ package transportgrpc
 
 import (
 	grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
-	transport "git.perx.ru/perxis/perxis-go/spaces/transport"
+	transport "git.perx.ru/perxis/perxis-go/pkg/space/transport"
 	grpckit "github.com/go-kit/kit/transport/grpc"
 	grpc "google.golang.org/grpc"
 )
diff --git a/spaces/transport/grpc/client.microgen.go b/pkg/space/transport/grpc/client.microgen.go
similarity index 95%
rename from spaces/transport/grpc/client.microgen.go
rename to pkg/space/transport/grpc/client.microgen.go
index 3ef02c04b03a30c05d0d67f36001e6ec599ade30..b0d7d35e8e14c5ffa1d852d16e899160af5bb55e 100644
--- a/spaces/transport/grpc/client.microgen.go
+++ b/pkg/space/transport/grpc/client.microgen.go
@@ -3,8 +3,8 @@
 package transportgrpc
 
 import (
+	transport "git.perx.ru/perxis/perxis-go/pkg/space/transport"
 	pb "git.perx.ru/perxis/perxis-go/proto/spaces"
-	transport "git.perx.ru/perxis/perxis-go/spaces/transport"
 	grpckit "github.com/go-kit/kit/transport/grpc"
 	empty "github.com/golang/protobuf/ptypes/empty"
 	grpc "google.golang.org/grpc"
diff --git a/spaces/transport/grpc/protobuf_endpoint_converters.microgen.go b/pkg/space/transport/grpc/protobuf_endpoint_converters.microgen.go
similarity index 99%
rename from spaces/transport/grpc/protobuf_endpoint_converters.microgen.go
rename to pkg/space/transport/grpc/protobuf_endpoint_converters.microgen.go
index dbc733d98ab232a44fd26a0799798f267ef3d42f..606d41cfa3335674b487cd861fd5cfb86152b90b 100644
--- a/spaces/transport/grpc/protobuf_endpoint_converters.microgen.go
+++ b/pkg/space/transport/grpc/protobuf_endpoint_converters.microgen.go
@@ -7,8 +7,8 @@ import (
 	"context"
 	"errors"
 
+	transport "git.perx.ru/perxis/perxis-go/pkg/space/transport"
 	pb "git.perx.ru/perxis/perxis-go/proto/spaces"
-	transport "git.perx.ru/perxis/perxis-go/spaces/transport"
 	empty "github.com/golang/protobuf/ptypes/empty"
 )
 
diff --git a/spaces/transport/grpc/protobuf_type_converters.microgen.go b/pkg/space/transport/grpc/protobuf_type_converters.microgen.go
similarity index 97%
rename from spaces/transport/grpc/protobuf_type_converters.microgen.go
rename to pkg/space/transport/grpc/protobuf_type_converters.microgen.go
index 74252b5b65649b92737ca2aaa71abd4836df62d0..56e2dc38265de3a9fa239b3d4d8cb37873558796 100644
--- a/spaces/transport/grpc/protobuf_type_converters.microgen.go
+++ b/pkg/space/transport/grpc/protobuf_type_converters.microgen.go
@@ -5,8 +5,8 @@
 package transportgrpc
 
 import (
+	service "git.perx.ru/perxis/perxis-go/pkg/space"
 	pb "git.perx.ru/perxis/perxis-go/proto/spaces"
-	service "git.perx.ru/perxis/perxis-go/spaces"
 )
 
 func PtrConfigToProto(config *service.Config) (*pb.Config, error) {
diff --git a/spaces/transport/grpc/server.go b/pkg/space/transport/grpc/server.go
similarity index 80%
rename from spaces/transport/grpc/server.go
rename to pkg/space/transport/grpc/server.go
index 44f232fa8901f330542f2d20274763f132c96cea..f8220070b19fe5cc9a51ed7bdd8aa6fe5579d428 100644
--- a/spaces/transport/grpc/server.go
+++ b/pkg/space/transport/grpc/server.go
@@ -2,13 +2,13 @@ package transportgrpc
 
 import (
 	grpcerr "git.perx.ru/perxis/perxis-go/pkg/errors/grpc"
+	"git.perx.ru/perxis/perxis-go/pkg/space"
+	"git.perx.ru/perxis/perxis-go/pkg/space/transport"
 	pb "git.perx.ru/perxis/perxis-go/proto/spaces"
-	"git.perx.ru/perxis/perxis-go/spaces"
-	"git.perx.ru/perxis/perxis-go/spaces/transport"
 	grpckit "github.com/go-kit/kit/transport/grpc"
 )
 
-func NewServer(svc spaces.Spaces, opts ...grpckit.ServerOption) pb.SpacesServer {
+func NewServer(svc space.Spaces, opts ...grpckit.ServerOption) pb.SpacesServer {
 	eps := transport.Endpoints(svc)
 	eps = transport.EndpointsSet{
 		CreateEndpoint:       grpcerr.ServerMiddleware(eps.CreateEndpoint),
diff --git a/spaces/transport/grpc/server.microgen.go b/pkg/space/transport/grpc/server.microgen.go
similarity index 97%
rename from spaces/transport/grpc/server.microgen.go
rename to pkg/space/transport/grpc/server.microgen.go
index 7ff0e5869707c926fc30c01843ee53f2b9c13777..0d00433457f573073eeeabe5e41c4a3803d69c20 100644
--- a/spaces/transport/grpc/server.microgen.go
+++ b/pkg/space/transport/grpc/server.microgen.go
@@ -4,8 +4,8 @@
 package transportgrpc
 
 import (
+	transport "git.perx.ru/perxis/perxis-go/pkg/space/transport"
 	pb "git.perx.ru/perxis/perxis-go/proto/spaces"
-	transport "git.perx.ru/perxis/perxis-go/spaces/transport"
 	grpc "github.com/go-kit/kit/transport/grpc"
 	empty "github.com/golang/protobuf/ptypes/empty"
 	context "golang.org/x/net/context"
diff --git a/spaces/transport/server.microgen.go b/pkg/space/transport/server.microgen.go
similarity index 97%
rename from spaces/transport/server.microgen.go
rename to pkg/space/transport/server.microgen.go
index 30e0c032909abea05509c0760b733d186417e5fc..b4546383c62dae4fdc994a79f17ba3ee4345ceb1 100644
--- a/spaces/transport/server.microgen.go
+++ b/pkg/space/transport/server.microgen.go
@@ -5,7 +5,7 @@ package transport
 import (
 	"context"
 
-	spaces "git.perx.ru/perxis/perxis-go/spaces"
+	spaces "git.perx.ru/perxis/perxis-go/pkg/space"
 	endpoint "github.com/go-kit/kit/endpoint"
 )