redoing logics