factories and tests added

Signed-off-by: Pavel Astraukh <paladin111333@yandex.ru>