diff --git a/pkg/action/action.go b/pkg/action/action.go
index b1aabeb8667a43069b1ef88fa5b255bc42a8888a..98e3e0eca5881714065625bd736777d8c1320fd7 100644
--- a/pkg/action/action.go
+++ b/pkg/action/action.go
@@ -1,77 +1,40 @@
 package action
 
 import (
-	"fmt"
 	"net/url"
 	"strings"
-
-	"git.perx.ru/perxis/perxis-go/pkg/errors"
 )
 
 // URL структура для хранения данных о переданном действии.
 type URL struct {
 	*url.URL
-
-	id        string
-	extension string
 }
 
 // NewURL возвращает структуру ActionURL
 func NewURL(action string) (*URL, error) {
-	actionURL := new(URL)
-
-	if action == "" {
-		return actionURL, nil
-	}
-
-	err := actionURL.SetURL(action)
+	u, err := url.Parse(action)
 	if err != nil {
 		return nil, err
 	}
-	if actionURL.URL.Scheme == "grpc" {
-		splitPath := strings.Split(strings.TrimLeft(actionURL.Path, "/"), "/")
-		if len(splitPath) < 2 {
-			return nil, errors.Errorf("incorrect action URL, no action id: '%s'", action)
-		}
-		actionURL.extension = splitPath[0]
-		actionURL.id = splitPath[1]
-	}
-
-	return actionURL, nil
+	return &URL{URL: u}, nil
 }
 
-// ID возвращает сохраненный в URL id действия
-func (u *URL) ID() string {
-	return u.id
+func (u *URL) actionParts() (string, string) {
+	if u.URL == nil && u.URL.Scheme == "grpc" {
+		splitPath := strings.Split(strings.TrimLeft(u.Path, "/"), "/")
+		if len(splitPath) >= 2 {
+			return splitPath[0], splitPath[1]
+		}
+	}
+	return "", ""
 }
 
-// SetID устанавливает в URL id действия
-func (u *URL) SetID(id string) {
-	u.id = id
+func (u *URL) Action() string {
+	_, action := u.actionParts()
+	return action
 }
 
-// Extension возвращает сохраненный в URL id расширения
 func (u *URL) Extension() string {
-	return u.extension
-}
-
-// SetExtension устанавливает в URL id расширения
-func (u *URL) SetExtension(ext string) {
-	u.extension = ext
-}
-
-// SetURL устанавливает структуру URL
-func (u *URL) SetURL(s string) (err error) {
-	if u.URL, err = url.Parse(s); err != nil {
-		return err
-	}
-	return nil
-}
-
-// MakeURL возвращает Action URL из сохраненных данных
-func (u *URL) String() string {
-	if u.id != "" && u.extension != "" {
-		return fmt.Sprintf("grpc:///%s/%s", u.extension, u.id)
-	}
-	return u.URL.String()
+	ext, _ := u.actionParts()
+	return ext
 }