write tests and necessary logic, step 1