I'll start out by saying I appreciate the message in the song, and for a first attempt, you've done a good job!
It sounds like you've avoided the use of much compression. It may because you're not sure how to use it or because you don't tend to like it much. It seems to me that you could use some, though, if nothing more than to tame your peaks. The piano and overheads strike me immediately as needing some peaks tamed. It does seem like you've got some on the vocal, and it sounds pretty good.
Also, it seems to me that you think about mixing your kit in terms of a bunch of individual instruments (snare, kick, tom 2, etc.). I'd encourage you to think more in terms of the kit being one instrument. The snare, IMO, is sticking out from the rest of the kit. The toms pop sometimes, while other times they seem to sit well, so it may be that they could stand a touch of compression or automation, as well. The cymbals also seem to be pretty crisp. I feel like they could be warmed up a bit with some EQ'ing, but not so much they lose their clarity.
It's already been mentioned that the bass is very low, so I won't comment further on that.
There are numerous ways to deal with the spacial elements of your mix. First, of course, is panning (left and right, obviously), then frequency response (up and down), reflectivity (front to back), and balance. As for panning, since the keys are your main harmonic instrument, I'd recommend panning them hard left and right (that is assuming it's in stereo). Next, the mix sounds pretty dry. For my taste, it's a little too 2-dimensional. Any depth you have seems to be created almost exclusively by your balance choices (the snare, for instance, because it's louder compared to the rest of the kit, seems like it's closer than the rest of the kit) and any room that happens to be captured in the recording. Try adding a touch of verb to the snare to set it back a bit. Start with plates or rooms, play with the pre-delay, and don't go overboard. It sounds like you may have a touch of verb on the vocal, but try some short delays, like a slap, on the vocal, maybe even timed to the tempo. Again, just keep them subtle; only enough to give a sense of space. I'd try some subtle verb on the piano, as well. The more I listen to your song, the more I think some of this could be solved by turning the piano down some and/or compressing some of it's peaks a bit more.
Toward the end of the song, I'd consider bringing the bgv up a bit, just to add some more excitement. That brings up another thought. Contrast is an important element in mixing. This is the difference between bright and dark, or even differences as they happen over time. Think about making the mix go somewhere. Don't set levels and leave them throughout the song. It sounds like some automation may be in order.
Hopefully that gives you some things to think about. If you need any further help, by all means, don't hesitate to contact me.