diff --git a/op_robot_tests/tests_files/OpenProcurementProcess.robot b/op_robot_tests/tests_files/OpenProcurementProcess.robot
index 24d409f..fce1f81 100644
--- a/op_robot_tests/tests_files/OpenProcurementProcess.robot
+++ b/op_robot_tests/tests_files/OpenProcurementProcess.robot
@@ -4,15 +4,15 @@ Library  String
 LIbrary  Collections
 LIbrary  Selenium2Library
 Library  DebugLibrary
-
+Resource  keywords.robot
 Suite Setup  TestCaseSetup
 Suite Teardown  Close all browsers
 
-
 *** Variables ***
-${viewer}    E-tender User
-${provider}   Andrew
-@{item_fields}   description   quantity   classification.id  classification.description  deliveryAddress  deliveryDate
+${viewer}     Tender User
+# Tender Viewer
+${provider}   Tender User
+
 
 *** Test Cases ***
 Можливість оголосити тендер
@@ -66,9 +66,6 @@ ${provider}   Andrew
   [Tags]   ${USERS.users['${viewer}'].broker}: Відображення основних даних оголошеного тендера
   Звірити поле тендера   ${viewer}  procuringEntity.name
 
-
-
-
 Відображення предмету закупівлі однопредметного тендера
   [Tags]   ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера
   Звірити поле тендера   ${viewer}  items[0].description
@@ -84,7 +81,11 @@ ${provider}   Andrew
 
 Відображення місце поставки закупівлі однопредметного тендера
   [Tags]   ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера
-  Звірити поле тендера   ${viewer}  items[0].deliveryAddress
+  Звірити поле тендера   ${viewer}  items[0].deliveryAddress.countryName
+  Звірити поле тендера   ${viewer}  items[0].deliveryAddress.locality
+  Звірити поле тендера   ${viewer}  items[0].deliveryAddress.postalCode
+  Звірити поле тендера   ${viewer}  items[0].deliveryAddress.region
+  Звірити поле тендера   ${viewer}  items[0].deliveryAddress.streetAddress
 
 Відображення строки поставки закупівлі однопредметного тендера
   [Tags]   ${USERS.users['${viewer}'].broker}: Відображення однопредметного тендера
@@ -97,7 +98,6 @@ ${provider}   Andrew
   Set Global Variable   ${LAST_MODIFICATION_DATE}
   отримати останні зміни в тендері
 
-
 Відображення заголовоку анонімного питання без відповіді
   [Tags]   ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
   Дочекатись синхронізації з майданчиком    ${viewer}
@@ -108,96 +108,27 @@ ${provider}   Andrew
   [Tags]   ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
   Звірити поле тендера   ${viewer}  questions[0].description
 
-
-Відображення дата анонімного питання без відповіді
+Відображення дати анонімного питання без відповіді
   [Tags]   ${USERS.users['${viewer}'].broker}: Відображення анонімного питання без відповідей
   Звірити поле тендера   ${viewer}  questions[0].date
 
-  # ${users_list}=    Get Dictionary Items    ${USERS.users}
-  # :FOR    ${username}  ${User_Data}   IN  @{users_list}
-  # \  Run Keyword If  '${User_Name}' != '${USERS.tender_owner}'   Відображення основних даних оголошеного тендера   ${username}
-#
-# Відображення однопредметного тендера
-  # ${users_list}=    Get Dictionary Items    ${USERS.users}
-  # :FOR    ${username}  ${User_Data}   IN  @{users_list}
-  # \  Run Keyword If  '${User_Name}' != '${USERS.tender_owner}'   Відображення однопредметного тендера  ${username}
-#
-#
-# Можливість змінити основні властивості тендера
-    # [tags]   all_stages
-    # Власник змінив основні властивості тендера
-    # Інші учасники побачили створений тендер
-#
-# Питання і відповідь
-  # Учасник Andrew задав 1-ше питання
-  # Інші учасники побачили 1-ше питання
-  # Власник відповів на 1-ше питання
-  # Інші учасники побачили відповідь на 1-ше питання
-#
-
-
-*** Keywords ***
-TestCaseSetup
-    Завантажуємо дані про корисувачів і площадки
-    Підготовка початкових даних
-
-
-Завантажуємо дані про корисувачів і площадки
-  # Init Brokers
-  ${file_path}=  Get Variable Value  ${BROKERS_FILE}  brokers.yaml
-  ${BROKERS}=  load_initial_data_from  ${file_path}
-  Set Global Variable  ${BROKERS}
-  ${brokers_list}=    Get Dictionary Items    ${BROKERS}
-  :FOR  ${Broker_Name}  ${Broker_Data}   IN  @{brokers_list}
-  \  Завантажуємо бібліотеку з реалізацією ${Broker_Data.keywords_file} площадки
-  # Init Users
-  ${file_path}=  Get Variable Value  ${USERS_FILE}  users.yaml
-  ${USERS}=  load_initial_data_from  ${file_path}
-  Set Global Variable  ${USERS}
-  ${users_list}=    Get Dictionary Items    ${USERS.users}
-  :FOR  ${username}  ${user_data}   IN  @{users_list}
-  \  Викликати для учасника   ${username}  Підготувати клієнт для користувача
-
-Підготовка початкових даних
-  @{QUESTIONS} =  Create list
-  ${question}=  test question data
-  Append to list   ${QUESTIONS}   ${question}
-  Set Global Variable  ${QUESTIONS}
-  ${INITIAL_TENDER_DATA}=  prepare_test_tender_data
-  Set Global Variable  ${INITIAL_TENDER_DATA}
-
-Завантажуємо бібліотеку з реалізацією ${keywords_file} площадки
-  Import Resource  ${CURDIR}/brokers/${keywords_file}.robot
-
-
-##################################################################################
-Дочекатись синхронізації з майданчиком
-  [Arguments]  ${username}
-  [Documentation]
-  ...      ${ARGUMENTS[0]} ==  username
-  ...      ${ARGUMENTS[1]} ==  tenderId
-  ...      ${ARGUMENTS[2]} ==  id
-
-  ${now}=  Get Current Date
-  ${delta}=  Subtract Date From Date  ${now}  ${LAST_MODIFICATION_DATE}
-  ${wait_timout}=  Subtract Time From Time  ${BROKERS['${USERS.users['${username}'].broker}'].timout_on_wait}  ${delta}
-  Run Keyword If   ${wait_timout}>0   Sleep  ${wait_timout}
-
-отримати останні зміни в тендері
-  ${TENDER_DATA}=   Викликати для учасника   ${USERS.tender_owner}   Пошук тендера по ідентифікатору   ${TENDER_DATA.data.tenderID}   ${TENDER_DATA.data.id}
-  Set To Dictionary  ${TENDER_DATA}   access_token   ${access_token}
-  Set Global Variable  ${TENDER_DATA}
-  Log object data  ${TENDER_DATA}  tender_with_question
-
-Звірити поле тендера
-  [Arguments]  ${username}  ${field}
-  ${field_response}=  Викликати для учасника    ${username}   отримати інформацію із тендера  ${field}
-  ${field_value}=   Get_From_Object  ${TENDER_DATA.data}   ${field}
-  Should Be Equal   ${field_value}   ${field_response}   Майданчик ${USERS.users['${username}'].broker}
-
-
-Викликати для учасника
-  [Arguments]  ${username}  ${command}  @{arguments}
-  ${status}  ${value}=  run_keyword_and_ignore_keyword_definations   ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command}  ${username}  @{arguments}
-  Run keyword if  '${status}' == 'FAIL'   Log   Учасник ${username} не зміг виконати "${command}"   WARN
-  [return]   ${value}
+Відповісти на запитання
+  [Tags]   ${USERS.users['${USERS.tender_owner}'].broker}: Можливість відповісти на запитання
+  Викликати для учасника   ${USERS.tender_owner}   Відповісти на питання    ${TENDER_DATA.data.id}  0  ${ANSWERS[0]}
+  ${LAST_MODIFICATION_DATE}=  Get Current Date
+  Set Global Variable   ${LAST_MODIFICATION_DATE}
+  отримати останні зміни в тендері
+
+Відображення відповіді на запитання
+  [Tags]   ${USERS.users['${viewer}'].broker}: Відображення відповіді на запитання
+  Дочекатись синхронізації з майданчиком    ${viewer}
+  Викликати для учасника   ${viewer}   обновити сторінку з тендером   ${TENDER_DATA.data.tenderID}   ${TENDER_DATA.data.id}
+  Звірити поле тендера   ${viewer}  questions[0].answer
+
+
+Подати цінову пропозицію
+  [Tags]   ${USERS.users['${provider}'].broker}: Можливість подати цінову пропозицію
+  Дочекатись дати початоку прийому пропозицій
+  ${bid}=  test bid data
+  Log object data  ${bid}
+  Викликати для учасника   ${provider}   Подати цінову пропозицію   ${TENDER_DATA.data.id}   ${bid}
\ No newline at end of file
diff --git a/op_robot_tests/tests_files/brokers/etender.robot b/op_robot_tests/tests_files/brokers/etender.robot
index 652cf02..c027e4a 100644
--- a/op_robot_tests/tests_files/brokers/etender.robot
+++ b/op_robot_tests/tests_files/brokers/etender.robot
@@ -157,12 +157,16 @@ ${locator.enquiryPeriod.endDate}     jquery=tender-procedure-info>div.row:contai
   [return]  ${return_value}
 
 отримати інформацію про questions[${question_id}].description
-  відмітити на сторінці поле з тендера   questions title   jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
+  відмітити на сторінці поле з тендера   questions description   jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
   ${return_value}=   Get Text  jquery=tender-questions>div:eq(1)>div.row:contains("Питання:")>:eq(1)>
   [return]  ${return_value}
 
 отримати інформацію про questions[${question_id}].date
-  відмітити на сторінці поле з тендера   questions title   jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
+  відмітити на сторінці поле з тендера   question date   jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
   ${return_value}=   Get Text  jquery=tender-questions>div:eq(1)>div.row:contains("Дата:")>:eq(1)>
   [return]  ${return_value}
 
+отримати інформацію про questions[${question_id}].answer
+  відмітити на сторінці поле з тендера   question answer   jquery=tender-questions>div:eq(1)>div:last>
+  ${return_value}=   Get Text  jquery=tender-questions>div:eq(1)>div:last>
+  [return]  ${return_value}
\ No newline at end of file
diff --git a/op_robot_tests/tests_files/brokers/openprocurement_client.robot b/op_robot_tests/tests_files/brokers/openprocurement_client.robot
index fd3d21e..4874382 100644
--- a/op_robot_tests/tests_files/brokers/openprocurement_client.robot
+++ b/op_robot_tests/tests_files/brokers/openprocurement_client.robot
@@ -34,53 +34,23 @@ Library  op_robot_tests.tests_files.brokers.openprocurement_client_helper
   [return]   ${tender_data}
 
 
-отримати інформацію із тендера
-  [Arguments]  @{ARGUMENTS}
-  [Documentation]
-  ...      ${ARGUMENTS[0]} ==  username
-  ...      ${ARGUMENTS[1]} ==  fieldname
-  [return]  ${USERS.users['${ARGUMENTS[0]}'].tender_data.data.${ARGUMENTS[1]}}
-
-
-
-отримати інформацію про description для предмету закупівлі в однопредметному тендері
-  [Arguments]  @{ARGUMENTS}
-  [Documentation]
-  ...      ${ARGUMENTS[0]} ==  username
-  [return]  ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].description}
-
-отримати інформацію про quantity для предмету закупівлі в однопредметному тендері
-  [Arguments]  @{ARGUMENTS}
-  [Documentation]
-  ...      ${ARGUMENTS[0]} ==  username
-  [return]  ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].quantity}
-
-
-отримати інформацію про classification.id для предмету закупівлі в однопредметному тендері
-  [Arguments]  @{ARGUMENTS}
-  [Documentation]
-  ...      ${ARGUMENTS[0]} ==  username
-  [return]  ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].classification.id}
-
-
-отримати інформацію про classification.description для предмету закупівлі в однопредметному тендері
+обновити сторінку з тендером
   [Arguments]  @{ARGUMENTS}
   [Documentation]
   ...      ${ARGUMENTS[0]} ==  username
-  [return]  ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].classification.description}
+  ...      ${ARGUMENTS[1]} ==  tenderId
+  ...      ${ARGUMENTS[2]} ==  id
+  openprocurement_client.Пошук тендера по ідентифікатору    @{ARGUMENTS}
 
 
-отримати інформацію про deliveryAddress для предмету закупівлі в однопредметному тендері
+отримати інформацію із тендера
   [Arguments]  @{ARGUMENTS}
   [Documentation]
   ...      ${ARGUMENTS[0]} ==  username
-  [return]  ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].deliveryAddress}
+  ...      ${ARGUMENTS[1]} ==  fieldname
+  ${field_value}=   Get_From_Object  ${USERS.users['${ARGUMENTS[0]}'].tender_data.data}   ${ARGUMENTS[1]}
+  [return]  ${field_value}
 
-отримати інформацію про deliveryDate для предмету закупівлі в однопредметному тендері
-  [Arguments]  @{ARGUMENTS}
-  [Documentation]
-  ...      ${ARGUMENTS[0]} ==  username
-  [return]  ${USERS.users['${ARGUMENTS[0]}'].tender_data.data['items'][0].deliveryDate}
 
 Внести зміни в тендер
   [Arguments]  @{ARGUMENTS}
@@ -91,7 +61,6 @@ Library  op_robot_tests.tests_files.brokers.openprocurement_client_helper
   ...      ${ARGUMENTS[3]} ==  fieldvalue
   отримати тендер   ${ARGUMENTS[0]}   ${ARGUMENTS[1]}
   Set_To_Object  ${TENDER_DATA.data}   ${ARGUMENTS[2]}   ${ARGUMENTS[3]}
-
   ${TENDER_DATA}=  Call Method  ${USERS.users['${ARGUMENTS[0]}'].client}  patch_tender  ${TENDER_DATA}
   ${TENDER_DATA}=  set_access_key  ${TENDER_DATA}  ${USERS.users['${ARGUMENTS[0]}'].access_token}
   Set Global Variable  ${TENDER_DATA}
@@ -107,13 +76,39 @@ Library  op_robot_tests.tests_files.brokers.openprocurement_client_helper
   Set Global Variable  ${TENDER_DATA}
 
 
-
 Задати питання
   [Documentation]
   ...      ${ARGUMENTS[0]} ==  username
   ...      ${ARGUMENTS[1]} ==  tender_uid
   ...      ${ARGUMENTS[2]} ==  question
   [Arguments]  @{ARGUMENTS}
+  log many  @{ARGUMENTS}
   ${tender}=  Call Method  ${USERS.users['${ARGUMENTS[0]}'].client}  get_tender  ${ARGUMENTS[1]}
   ${question}=  Call Method  ${USERS.users['${ARGUMENTS[0]}'].client}  create_question  ${tender}  ${ARGUMENTS[2]}
-  Log object data   ${question}  question
\ No newline at end of file
+  Log object data   ${question}  question
+
+Відповісти на питання
+  [Documentation]
+  ...      ${ARGUMENTS[0]} ==  username
+  ...      ${ARGUMENTS[1]} ==  tender_uid
+  ...      ${ARGUMENTS[2]} ==  question_id
+  ...      ${ARGUMENTS[3]} ==  answer_data
+  [Arguments]  @{ARGUMENTS}
+  log many  @{ARGUMENTS}
+  ${tender}=  Call Method  ${USERS.users['${ARGUMENTS[0]}'].client}  get_tender  ${ARGUMENTS[1]}
+  ${tender}=  set_access_key  ${tender}  ${USERS.users['${ARGUMENTS[0]}'].access_token}
+  ${ARGUMENTS[3].data.id}=  Set Variable   ${tender.data.questions[${ARGUMENTS[2]}].id}
+  ${quvestion_with_answer}=  Call Method  ${USERS.users['${ARGUMENTS[0]}'].client}  patch_question  ${tender}  ${ARGUMENTS[3]}
+  Log object data   ${quvestion_with_answer}  quvestion_with_answer
+
+
+Подати цінову пропозицію
+  [Documentation]
+  ...      ${ARGUMENTS[0]} ==  username
+  ...      ${ARGUMENTS[1]} ==  tender_uid
+  ...      ${ARGUMENTS[2]} ==  bid
+  [Arguments]  @{ARGUMENTS}
+  log many  @{ARGUMENTS}
+  ${tender}=  Call Method  ${USERS.users['${ARGUMENTS[0]}'].client}  get_tender  ${ARGUMENTS[1]}
+  ${bid}=  Call Method  ${USERS.users['${ARGUMENTS[0]}'].client}  create_bid  ${tender}  ${ARGUMENTS[2]}
+  Log object data   ${question}  bid
diff --git a/op_robot_tests/tests_files/data/users.yaml b/op_robot_tests/tests_files/data/users.yaml
index 6071f97..f67fd92 100644
--- a/op_robot_tests/tests_files/data/users.yaml
+++ b/op_robot_tests/tests_files/data/users.yaml
@@ -2,11 +2,11 @@ tender_owner: Tender Owner
 users:
     Tender Owner:
         broker: Quinta
-    E-tender User:
+    Tender Viewer:
         broker: E-tender
         username: test
         browser:  chrome
         position:  [960, 0]
         size:  [960, 1000]
-    Andrew:
+    Tender User:
         broker: Quinta
\ No newline at end of file
diff --git a/op_robot_tests/tests_files/initial_data.py b/op_robot_tests/tests_files/initial_data.py
index 02e6d57..31d0724 100644
--- a/op_robot_tests/tests_files/initial_data.py
+++ b/op_robot_tests/tests_files/initial_data.py
@@ -80,16 +80,16 @@ test_tender_data = {
         }
     ],
     "enquiryPeriod": {
-        "endDate": (now + timedelta(days=1)).isoformat()
+        "endDate": (now + timedelta(minutes=2)).isoformat()
     },
     "tenderPeriod": {
-        "endDate": (now + timedelta(days=2)).isoformat()
+        "endDate": (now + timedelta(minutes=5)).isoformat()
     }
 }
 
 
 def test_question_data():
-    return {
+    return munchify({
         "data": {
             "author": {
                 "address": {
@@ -113,15 +113,15 @@ def test_question_data():
             "description": fake.sentence(nb_words=10, variable_nb_words=True),
             "title": fake.sentence(nb_words=6, variable_nb_words=True)
         }
-    }
+    })
 
 
 def test_question_answer_data():
-    return {
+    return munchify({
         "data": {
             "answer": fake.sentence(nb_words=40, variable_nb_words=True)
         }
-    }
+    })
 
 
 def test_bid_data():
diff --git a/op_robot_tests/tests_files/keywords.robot b/op_robot_tests/tests_files/keywords.robot
index 83555d3..30b3bee 100644
--- a/op_robot_tests/tests_files/keywords.robot
+++ b/op_robot_tests/tests_files/keywords.robot
@@ -71,4 +71,14 @@ TestCaseSetup
   [Arguments]  ${username}  ${command}  @{arguments}
   ${status}  ${value}=  run_keyword_and_ignore_keyword_definations   ${BROKERS['${USERS.users['${username}'].broker}'].keywords_file}.${command}  ${username}  @{arguments}
   Run keyword if  '${status}' == 'FAIL'   Log   Учасник ${username} не зміг виконати "${command}"   WARN
-  [return]   ${value}
\ No newline at end of file
+  [return]   ${value}
+
+
+Дочекатись дати
+  [Arguments]  ${date}
+  ${wait_timout}=  wait_to_date  ${date}
+  Run Keyword If   ${wait_timout}>0   Sleep  ${wait_timout}
+
+
+Дочекатись дати початоку прийому пропозицій
+  Дочекатись дати  ${TENDER_DATA.data.tenderPeriod.startDate}
\ No newline at end of file
diff --git a/op_robot_tests/tests_files/service_keywords.py b/op_robot_tests/tests_files/service_keywords.py
index 141247e..c72c667 100644
--- a/op_robot_tests/tests_files/service_keywords.py
+++ b/op_robot_tests/tests_files/service_keywords.py
@@ -7,8 +7,10 @@ from robot.output.loggerhelper import Message
 from robot.libraries.BuiltIn import BuiltIn
 from robot.errors import HandlerExecutionFailed
 from datetime import datetime, timedelta
+from dateutil.parser import parse
+from dateutil.tz import tzlocal
 from dpath.util import set as xpathset
-from jsonpath_rw import parse
+from jsonpath_rw import parse as parse_path
 from .initial_data import (
     test_tender_data, test_question_data, test_question_answer_data,
     test_bid_data
@@ -88,8 +90,20 @@ def set_to_object(obj, attribute, value):
 
 def get_from_object(obj, attribute):
     """Gets data from a dictionary using a dotted accessor-string"""
-    jsonpath_expr = parse(attribute)
+    jsonpath_expr = parse_path(attribute)
     return_list = [i.value for i in jsonpath_expr.find(obj)]
     if return_list:
         return return_list[0]
     return None
+
+
+def wait_to_date(date_stamp):
+    date = parse(date_stamp)
+    LOGGER.log_message(Message("date: {}".format(date.isoformat()), "INFO"))
+    now = datetime.now(tzlocal())
+    LOGGER.log_message(Message("now: {}".format(now.isoformat()), "INFO"))
+    wait_seconds = (date - now).total_seconds()
+    wait_seconds += 2
+    if wait_seconds < 0:
+        return 0
+    return wait_seconds
diff --git a/setup.py b/setup.py
index 42e0370..7cfdd6e 100644
--- a/setup.py
+++ b/setup.py
@@ -29,7 +29,8 @@ setup(name='op_robot_tests',
           'munch',
           'fake-factory',
           'dpath',
-          'jsonpath-rw'
+          'jsonpath-rw',
+          'dateutils'
       ],
       entry_points={
           'console_scripts': [