Added subtraction & optimizations