the drums are way too far in the background, bro... due to that, all drive has been lost... first: try to use compressors on bd/snare. boost it till it kicks!
The Volume-Levels for a dancefloor-aiming tune should be similar to this:
1.) Sub-bass (a plain sinus wav will do a good job) should be the loudest element in your mixdown.
2.) The drums. People must hear the riddim.
3.) depends on what your aiming at: in this case you have some present synths and midrange, which carry the main theme of the tune, so they should be a little bit louder then your drums, or at the same levels.
to make cooler sounds, add filters/distortion/phaser/flanger to your synths. play with the settings until you think it sounds cool. then try resampling it. check the volume levels again and adjust them.
an overall usefull tip: use spectrum analyzers (for example: voxengo span) to separate your frequencies
look if any frequencies are overlapping: bassdrum and sub often get into the way of each other. once you've spotted the frequencies which produce conflicts with other elements, cut them. for example : kickdrumpeakes range from 50hz - 200 hz, sub-bass ranges from 20hz to 70 hz. so these two elements collide at 50-70 hz. Sub generaly plays between 50-60 hz, so just add a lowpass EQ and set it to 60 hz. next add an EQ on the bassdrum: cut the bassdrum with a Highpass EQ at around 60 or 70 hz (depends on how much bass the kick has)
once the frequencies are not interfering anymore, you can start boosting your kick and you sub.
and so on. it's just a matter of practice.
