implemented subtract