rewrote the systems