both parts are ready. need to write tests