overheating transistor on DC motor control circuit

i am trying to control a DC motor using 4 transistors, i am using 547 transistors connected to a motor with two on each axis, the opposite corners are wired together with two pushbuttons, the transistors change the polarity of the motor so that if one button i pressed the motor spins one way, the other button vice versa, but the motor is running very slowly in this setup and the last two transistor that go from the motor to ground heat up very quickly. the circuit works fine with only one transistor but i want to be able to change the direction of spin, does anyone know why the transistors are acting like this or a better circuit to control a DC motor?
thanks very much!

iceng5 years ago
You have power flowing through the all the transistors unevenly enough
to overheat ( a short circuit ) caused by a miss wire or bad bias.

You need to post this as a question in technology with a schematic if you want
to fix this.