add use of registers in evaluate
can now assigne and use registers
add register test
add some test or something
merge register assignment functionality