some updates, found a lot more work needed in the expression solver =(