ok, basic logic is good, need few improvements