thanks to skids89 suggestion i figured it out. To remove a background from an image that appears transparent you need to:
cut out all the background that is not overlapping with the img. (magic wand select then del)
then you need to cut out all the places in the img that overlap with the background (using magic lasso tool or something similar) and paste them into a new layer
afterwards you need to apply the mask to the new layer and use the gradient tool just as skids89 suggested.(yet the img will still have the background behind it it will just be with a gradient and transparent) (changing opacity of the layer will also work)

now you need to create a background layer with a color opposite to the previous background color
and then you need to select the layer with the mask (not the mask the actual layer) go to image->adjustments->levels
and move the bottom slider up
(that is if your color was white, otherwise first change channel setting to the most similar of your colors first--from RBG to blue for example if your bg was blue)
this will make your original background disappear :)
results (yours should look nicer if you applied gradient to it):

And this is how your final image will look like the bottom part having a truly transparent background so you can place any background behind it and it will look nice:
Tip:
If you have any jagged edges or dots left behind after the cutout
do the fallowing things to the layers with those problems:
create a mask for them
go to Filter->blur->Gaussian Blur
mess with the value until the all the jagged edges are underlined (this might simply make it a tiny bit darker or transparent and might be hard to see but usually value somewhere around 2.0 works)
then go image->adjustments->levels
move the bottom slider up until the jagged edges are gone and move the top slider down until you are satisfied with the results. click ok and it should look wonderful
(if you not getting result expected you probably selected the layer instead of the mask undo all you've done and select the mask of that layer then try again)