- when you use a static you couple to an implementation and not an interface.  You can not change the implementation without changing all dependencies.
 - your statics are essentially global.  Use of globals should be discouraged for the reason of intellectual manageability of your code.  Strive to minimize the scope.
 - using statics do not follow tenets of Object Orientation.  Fine for your functional programming style but not OO.
 - statics leads to all or nothing testing.  Testing a single unit is much harder if not impossible.
 
Of course this crazy talk will eventually lead you to Ioc. See you when you get there.