more adding
rewrote some backend functions to read as statements about data instead of imperative programs (less do loops, more function splitting, etc)