basic logic taking shape