Deformations when using subdivision surface I'm really happy with this model because its simple and low poly, but when i try to use a subdivision surface modifier, some places where i kinda cheated the result, like merging vertices or whatever, the mesh deforms. I can't figure out what's wrong with the mesh. 

Below are the before/after pics and a link to the blend file.




And the file

I've tried creating loopcuts and all the clean-up options.

Thanks in advance!
I think here are the main problems with your mesh:


You need to create some edge loops close to the angles if you want them to be sharp.
You have a lot of inside faces. Select them and delete.
Try to avoid triangles, use the Knife tool to create quads: K to activate, Z to cut through the mesh.