My two penneth.. I'm with Jeremy on Vertical Slice. It's just so nice to work in if you can get it right. Also, keep refactoring away the complexity - defactoring, if anything - until it's where you need it to be - cohesive, testable (at the level you need) and easy to reason about.