added subtract method - not all tests are passing
made subtract more robust