rewrote definitions