rewrote symbolic stuff