diff --git a/perxis-proto b/perxis-proto
index 8606df02e0df6807e503bf22471a295020a47fba..f000812a1eef24093c0d0abf1318e3179b679773 160000
--- a/perxis-proto
+++ b/perxis-proto
@@ -1 +1 @@
-Subproject commit 8606df02e0df6807e503bf22471a295020a47fba
+Subproject commit f000812a1eef24093c0d0abf1318e3179b679773
diff --git a/pkg/version/transport/client.microgen.go b/pkg/account/versions/transport/client.microgen.go
similarity index 100%
rename from pkg/version/transport/client.microgen.go
rename to pkg/account/versions/transport/client.microgen.go
diff --git a/pkg/version/transport/endpoints.microgen.go b/pkg/account/versions/transport/endpoints.microgen.go
similarity index 100%
rename from pkg/version/transport/endpoints.microgen.go
rename to pkg/account/versions/transport/endpoints.microgen.go
diff --git a/pkg/version/transport/exchanges.microgen.go b/pkg/account/versions/transport/exchanges.microgen.go
similarity index 100%
rename from pkg/version/transport/exchanges.microgen.go
rename to pkg/account/versions/transport/exchanges.microgen.go
diff --git a/pkg/account/versions/transport/grpc/client.microgen.go b/pkg/account/versions/transport/grpc/client.microgen.go
new file mode 100644
index 0000000000000000000000000000000000000000..2e029d6ca5a7d432e146c103f97da52599a1a8e5
--- /dev/null
+++ b/pkg/account/versions/transport/grpc/client.microgen.go
@@ -0,0 +1,23 @@
+// Code generated by microgen 0.9.1. DO NOT EDIT.
+
+package transportgrpc
+
+import (
+	transport "git.perx.ru/perxis/perxis-go/pkg/account/versions/transport"
+	pb "git.perx.ru/perxis/perxis-go/proto/versions/account"
+	grpckit "github.com/go-kit/kit/transport/grpc"
+	grpc "google.golang.org/grpc"
+)
+
+func NewGRPCClient(conn *grpc.ClientConn, addr string, opts ...grpckit.ClientOption) transport.EndpointsSet {
+	if addr == "" {
+		addr = "account.Versions"
+	}
+	return transport.EndpointsSet{GetEndpoint: grpckit.NewClient(
+		conn, addr, "Get",
+		_Encode_Get_Request,
+		_Decode_Get_Response,
+		pb.GetResponse{},
+		opts...,
+	).Endpoint()}
+}
diff --git a/pkg/account/versions/transport/grpc/protobuf_endpoint_converters.microgen.go b/pkg/account/versions/transport/grpc/protobuf_endpoint_converters.microgen.go
new file mode 100644
index 0000000000000000000000000000000000000000..a39b9b3e2cd3adbb20a2ac1838fa9ec57e082ab5
--- /dev/null
+++ b/pkg/account/versions/transport/grpc/protobuf_endpoint_converters.microgen.go
@@ -0,0 +1,44 @@
+// Code generated by microgen 0.9.1. DO NOT EDIT.
+
+// Please, do not change functions names!
+package transportgrpc
+
+import (
+	"context"
+	"errors"
+	transport "git.perx.ru/perxis/perxis-go/pkg/account/versions/transport"
+	pb "git.perx.ru/perxis/perxis-go/proto/versions/account"
+	empty "github.com/golang/protobuf/ptypes/empty"
+)
+
+func _Encode_Get_Request(ctx context.Context, request interface{}) (interface{}, error) {
+	return &empty.Empty{}, nil
+}
+
+func _Encode_Get_Response(ctx context.Context, response interface{}) (interface{}, error) {
+	if response == nil {
+		return nil, errors.New("nil GetResponse")
+	}
+	resp := response.(*transport.GetResponse)
+	respVersion, err := PtrVersionsVersionToProto(resp.Version)
+	if err != nil {
+		return nil, err
+	}
+	return &pb.GetResponse{Version: respVersion}, nil
+}
+
+func _Decode_Get_Request(ctx context.Context, request interface{}) (interface{}, error) {
+	return &empty.Empty{}, nil
+}
+
+func _Decode_Get_Response(ctx context.Context, response interface{}) (interface{}, error) {
+	if response == nil {
+		return nil, errors.New("nil GetResponse")
+	}
+	resp := response.(*pb.GetResponse)
+	respVersion, err := ProtoToPtrVersionsVersion(resp.Version)
+	if err != nil {
+		return nil, err
+	}
+	return &transport.GetResponse{Version: respVersion}, nil
+}
diff --git a/pkg/account/versions/transport/grpc/protobuf_type_converters.microgen.go b/pkg/account/versions/transport/grpc/protobuf_type_converters.microgen.go
new file mode 100644
index 0000000000000000000000000000000000000000..d57d8fc986d4d98e697e7c43b4018b2cd5db3c49
--- /dev/null
+++ b/pkg/account/versions/transport/grpc/protobuf_type_converters.microgen.go
@@ -0,0 +1,40 @@
+// Code generated by microgen 0.9.1. DO NOT EDIT.
+
+// It is better for you if you do not change functions names!
+// This file will never be overwritten.
+package transportgrpc
+
+import (
+	"git.perx.ru/perxis/perxis-go/pkg/version"
+	"git.perx.ru/perxis/perxis-go/proto/common"
+)
+
+func PtrVersionsVersionToProto(version *version.Version) (*common.Version, error) {
+	pVersion := &common.Version{
+		ApiVersion:    version.APIVersion,
+		ServerVersion: version.ServerVersion,
+		Commit:        version.Commit,
+		BuildTime:     version.BuildTime,
+		BuildNumber:   int32(version.BuildNumber),
+	}
+	return pVersion, nil
+}
+
+func ProtoToPtrVersionsVersion(protoVersion *common.Version) (*version.Version, error) {
+	version := &version.Version{
+		APIVersion:    protoVersion.ApiVersion,
+		ServerVersion: protoVersion.ServerVersion,
+		Commit:        protoVersion.Commit,
+		BuildTime:     protoVersion.BuildTime,
+		BuildNumber:   int(protoVersion.BuildNumber),
+	}
+	return version, nil
+}
+
+func PtrVersionVersionToProto(version *version.Version) (*common.Version, error) {
+	panic("function not provided") // TODO: provide converter
+}
+
+func ProtoToPtrVersionVersion(protoVersion *common.Version) (*version.Version, error) {
+	panic("function not provided") // TODO: provide converter
+}
diff --git a/pkg/account/versions/transport/grpc/server.microgen.go b/pkg/account/versions/transport/grpc/server.microgen.go
new file mode 100644
index 0000000000000000000000000000000000000000..9de34e92049e1c1278e4573862b4a7502289f260
--- /dev/null
+++ b/pkg/account/versions/transport/grpc/server.microgen.go
@@ -0,0 +1,35 @@
+// Code generated by microgen 0.9.1. DO NOT EDIT.
+
+// DO NOT EDIT.
+package transportgrpc
+
+import (
+	transport "git.perx.ru/perxis/perxis-go/pkg/account/versions/transport"
+	pb "git.perx.ru/perxis/perxis-go/proto/versions/account"
+	grpc "github.com/go-kit/kit/transport/grpc"
+	empty "github.com/golang/protobuf/ptypes/empty"
+	context "golang.org/x/net/context"
+)
+
+type versionsServer struct {
+	get grpc.Handler
+
+	pb.UnimplementedVersionsServer
+}
+
+func NewGRPCServer(endpoints *transport.EndpointsSet, opts ...grpc.ServerOption) pb.VersionsServer {
+	return &versionsServer{get: grpc.NewServer(
+		endpoints.GetEndpoint,
+		_Decode_Get_Request,
+		_Encode_Get_Response,
+		opts...,
+	)}
+}
+
+func (S *versionsServer) Get(ctx context.Context, req *empty.Empty) (*pb.GetResponse, error) {
+	_, resp, err := S.get.ServeGRPC(ctx, req)
+	if err != nil {
+		return nil, err
+	}
+	return resp.(*pb.GetResponse), nil
+}
diff --git a/pkg/account/versions/transport/server.microgen.go b/pkg/account/versions/transport/server.microgen.go
new file mode 100644
index 0000000000000000000000000000000000000000..c4df6a7ee993cb7267af5fff7d9d0eb7e5d5d993
--- /dev/null
+++ b/pkg/account/versions/transport/server.microgen.go
@@ -0,0 +1,20 @@
+// Code generated by microgen 0.9.1. DO NOT EDIT.
+
+package transport
+
+import (
+	"context"
+	versions "git.perx.ru/perxis/perxis-go/pkg/version"
+	endpoint "github.com/go-kit/kit/endpoint"
+)
+
+func Endpoints(svc versions.Versions) EndpointsSet {
+	return EndpointsSet{GetEndpoint: GetEndpoint(svc)}
+}
+
+func GetEndpoint(svc versions.Versions) endpoint.Endpoint {
+	return func(arg0 context.Context, request interface{}) (interface{}, error) {
+		res0, res1 := svc.Get(arg0)
+		return &GetResponse{Version: res0}, res1
+	}
+}
diff --git a/pkg/content/versions/transport/client.microgen.go b/pkg/content/versions/transport/client.microgen.go
new file mode 100644
index 0000000000000000000000000000000000000000..ec9a69655fab437a4146b6cc61973197f415ff2c
--- /dev/null
+++ b/pkg/content/versions/transport/client.microgen.go
@@ -0,0 +1,24 @@
+// Code generated by microgen 0.9.1. DO NOT EDIT.
+
+package transport
+
+import (
+	"context"
+	"errors"
+
+	version "git.perx.ru/perxis/perxis-go/pkg/version"
+	codes "google.golang.org/grpc/codes"
+	status "google.golang.org/grpc/status"
+)
+
+func (set EndpointsSet) Get(arg0 context.Context) (res0 *version.Version, res1 error) {
+	request := GetRequest{}
+	response, res1 := set.GetEndpoint(arg0, &request)
+	if res1 != nil {
+		if e, ok := status.FromError(res1); ok || e.Code() == codes.Internal || e.Code() == codes.Unknown {
+			res1 = errors.New(e.Message())
+		}
+		return
+	}
+	return response.(*GetResponse).Version, res1
+}
diff --git a/pkg/content/versions/transport/endpoints.microgen.go b/pkg/content/versions/transport/endpoints.microgen.go
new file mode 100644
index 0000000000000000000000000000000000000000..b670fc2bb09ce1fe180f427ea600f703ebda02d5
--- /dev/null
+++ b/pkg/content/versions/transport/endpoints.microgen.go
@@ -0,0 +1,10 @@
+// Code generated by microgen 0.9.1. DO NOT EDIT.
+
+package transport
+
+import endpoint "github.com/go-kit/kit/endpoint"
+
+// EndpointsSet implements Versions API and used for transport purposes.
+type EndpointsSet struct {
+	GetEndpoint endpoint.Endpoint
+}
diff --git a/pkg/content/versions/transport/exchanges.microgen.go b/pkg/content/versions/transport/exchanges.microgen.go
new file mode 100644
index 0000000000000000000000000000000000000000..11c9bfbda2c9d21ecd76cc67961c59f8439936c1
--- /dev/null
+++ b/pkg/content/versions/transport/exchanges.microgen.go
@@ -0,0 +1,13 @@
+// Code generated by microgen 0.9.1. DO NOT EDIT.
+
+package transport
+
+import version "git.perx.ru/perxis/perxis-go/pkg/version"
+
+type (
+	// Formal exchange type, please do not delete.
+	GetRequest  struct{}
+	GetResponse struct {
+		Version *version.Version `json:"version"`
+	}
+)
diff --git a/pkg/version/transport/grpc/client.microgen.go b/pkg/content/versions/transport/grpc/client.microgen.go
similarity index 88%
rename from pkg/version/transport/grpc/client.microgen.go
rename to pkg/content/versions/transport/grpc/client.microgen.go
index 237f175e8023bd8168b3ff43da7096efe58020e7..abe65ad7be87b50c6f1b80804045b949b173c742 100644
--- a/pkg/version/transport/grpc/client.microgen.go
+++ b/pkg/content/versions/transport/grpc/client.microgen.go
@@ -3,7 +3,7 @@
 package transportgrpc
 
 import (
-	transport "git.perx.ru/perxis/perxis-go/pkg/version/transport"
+	"git.perx.ru/perxis/perxis-go/pkg/content/versions/transport"
 	pb "git.perx.ru/perxis/perxis-go/proto/versions/content"
 	grpckit "github.com/go-kit/kit/transport/grpc"
 	grpc "google.golang.org/grpc"
diff --git a/pkg/version/transport/grpc/protobuf_endpoint_converters.microgen.go b/pkg/content/versions/transport/grpc/protobuf_endpoint_converters.microgen.go
similarity index 94%
rename from pkg/version/transport/grpc/protobuf_endpoint_converters.microgen.go
rename to pkg/content/versions/transport/grpc/protobuf_endpoint_converters.microgen.go
index 26396d633853d9eac9ef0a1d64590b265d16119f..ccb07ffb912ac93312281938c55b2f796661bc2f 100644
--- a/pkg/version/transport/grpc/protobuf_endpoint_converters.microgen.go
+++ b/pkg/content/versions/transport/grpc/protobuf_endpoint_converters.microgen.go
@@ -7,7 +7,7 @@ import (
 	"context"
 	"errors"
 
-	transport "git.perx.ru/perxis/perxis-go/pkg/version/transport"
+	"git.perx.ru/perxis/perxis-go/pkg/content/versions/transport"
 	pb "git.perx.ru/perxis/perxis-go/proto/versions/content"
 	empty "github.com/golang/protobuf/ptypes/empty"
 )
diff --git a/pkg/version/transport/grpc/protobuf_type_converters.microgen.go b/pkg/content/versions/transport/grpc/protobuf_type_converters.microgen.go
similarity index 100%
rename from pkg/version/transport/grpc/protobuf_type_converters.microgen.go
rename to pkg/content/versions/transport/grpc/protobuf_type_converters.microgen.go
diff --git a/pkg/version/transport/grpc/server.microgen.go b/pkg/content/versions/transport/grpc/server.microgen.go
similarity index 92%
rename from pkg/version/transport/grpc/server.microgen.go
rename to pkg/content/versions/transport/grpc/server.microgen.go
index 63586ae3f3a1386413e3ae703591d0ee410e3e35..6457395d3feb1d38245fb6c7fc22faaa884a73de 100644
--- a/pkg/version/transport/grpc/server.microgen.go
+++ b/pkg/content/versions/transport/grpc/server.microgen.go
@@ -4,7 +4,7 @@
 package transportgrpc
 
 import (
-	transport "git.perx.ru/perxis/perxis-go/pkg/version/transport"
+	"git.perx.ru/perxis/perxis-go/pkg/content/versions/transport"
 	pb "git.perx.ru/perxis/perxis-go/proto/versions/content"
 	grpc "github.com/go-kit/kit/transport/grpc"
 	empty "github.com/golang/protobuf/ptypes/empty"
diff --git a/pkg/version/transport/server.microgen.go b/pkg/content/versions/transport/server.microgen.go
similarity index 100%
rename from pkg/version/transport/server.microgen.go
rename to pkg/content/versions/transport/server.microgen.go