Your contractor sounds controlling and a poor businessman. It's your house, you get to decide the type and quality of fixtures, details, etc. His job is only to let you know if something can or can't be done and how much it will cost per your specifications. If something is aganst code, he has to let you know and he can refuse to do it, but a good contractor will listen to your ideas and find a way to create something that makes you happy, that fits your desires. My dad is a contractor, and a home builder and designer, he specializes in multi-million dollar homes and estates, but has done jobs of all shapes, sizes and remodels. He would never mock or insult a client. He would never argue with them in a belligerent way, and especially not over a choice that is thiers to make. You should probably fire this guy if you can. You could let him finish the final project if its almost done, but if you can get rid of him, that would be best. Find a guy with a good attitude that listens to you.