Arduino Motor Driving Circuit.... What do you think?

I have one I/o pin going to a relay dpdt http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=843649 i then determines forwards or reverse. Then a second I/0 line to a NPN transitor to turn the motor of or on. This would have the capability of just forwards reverse and off. This is good because it takes on two i/o lines and is able to have just those parts because the coil would be able to run of the 40 mA the arduino pin can source

Synchronous
Does arduino have I2C? Keep an eye on https://www.robotshop.com/letsmakerobots/node/655 where an I2C 12V 20A dual channel motor speed and direction controller will shortly emerge.