abstraction....i stopped reading there...we did a rewrite at IBM and the lead guy over-abstracted everything. I couldn't google shit because it was all in this guy's head. I eventually got a negative review from my manager and quit because some idiot abstracted all the open source away.