diff --git a/yargy/interpretation/attribute.py b/yargy/interpretation/attribute.py
index 6f6c264..ca320c6 100644
--- a/yargy/interpretation/attribute.py
+++ b/yargy/interpretation/attribute.py
@@ -55,16 +55,6 @@ class FactAttributeBase(Record):
         )
 
 
-def prepare_normalized(attribute, item):
-    if item is not None:
-        if callable(item):
-            return FunctionFactAttribute(attribute, item)
-        else:
-            return ConstFactAttribute(attribute, item)
-    else:
-        return NormalizedFactAttribute(attribute)
-
-
 class FactAttribute(FactAttributeBase):
     __attributes__ = ['fact', 'name', 'default']
 
@@ -76,8 +66,14 @@ class FactAttribute(FactAttributeBase):
     def inflected(self, grammemes=None):
         return InflectedFactAttribute(self, grammemes)
 
-    def normalized(self, item=None):
-        return prepare_normalized(self, item)
+    def normalized(self):
+        return NormalizedFactAttribute(self)
+
+    def const(self, value):
+        return ConstFactAttribute(self, value)
+
+    def custom(self, function):
+        return FunctionFactAttribute(self, function)
 
 
 class RepeatableFactAttribute(FactAttributeBase):

Allow define custom value in interpretation rules
Like this
```python
{
    'interpretation': {
        'attribute': Object.attribute,
        'value': SomeEnum.value,
    }
}
```
diff --git a/yargy/tests/test_attribute.py b/yargy/tests/test_attribute.py
new file mode 100644
index 0000000..ea52d61
--- /dev/null
+++ b/yargy/tests/test_attribute.py
@@ -0,0 +1,29 @@
+# coding: utf-8
+from __future__ import unicode_literals
+
+
+from yargy import Parser, rule, fact
+from yargy.predicates import gram, dictionary
+
+Money = fact(
+    'Money',
+    ['count', 'base', 'currency']
+)
+
+
+def test_constant_attribute():
+    MONEY_RULE = rule(
+        gram('INT').interpretation(
+            Money.count
+        ),
+        dictionary({'тысяча'}).interpretation(
+            Money.base.const(10**3)
+        ),
+        dictionary({'рубль', 'доллар'}).interpretation(
+            Money.currency
+        ),
+    ).interpretation(Money)
+
+    parser = Parser(MONEY_RULE)
+    matches = list(parser.match('1 тысяча рублей'))
+    assert matches[0].fact == Money(count=1, base=1000, currency='рублей')

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-flake8
apt-get update apt-get install -y gcc
3.9
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
backports.functools-lru-cache==1.3
DAWG-Python==0.7.2
docopt==0.6.2
exceptiongroup==1.2.2
flake8==7.2.0
iniconfig==2.1.0
intervaltree==2.1.0
jellyfish==0.5.6
mccabe==0.7.0
packaging==24.2
pluggy==1.5.0
pycodestyle==2.13.0
pyflakes==3.3.1
pymorphy2==0.8
pymorphy2-dicts==2.4.393442.3710985
pytest==8.3.5
pytest-flake8==1.3.0
sortedcontainers==2.4.0
tomli==2.2.1
-e git+https://github.com/natasha/yargy.git@486a17df07ad1615b7a8d6ef2a4bfe3a39d30340#egg=yargy

name: yargy
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - backports-functools-lru-cache==1.3
      - dawg-python==0.7.2
      - docopt==0.6.2
      - exceptiongroup==1.2.2
      - flake8==7.2.0
      - iniconfig==2.1.0
      - intervaltree==2.1.0
      - jellyfish==0.5.6
      - mccabe==0.7.0
      - packaging==24.2
      - pluggy==1.5.0
      - pycodestyle==2.13.0
      - pyflakes==3.3.1
      - pymorphy2==0.8
      - pymorphy2-dicts==2.4.393442.3710985
      - pytest==8.3.5
      - pytest-flake8==1.3.0
      - sortedcontainers==2.4.0
      - tomli==2.2.1
prefix: /opt/conda/envs/yargy

yargy/tests/test_attribute.py::test_constant_attribute
yargy/interpretation/attribute.py
yargy/interpretation/attribute.py