add tests, helper and time