basic logic doen