http://stackoverflow.com/questions/444245/how-will-i-know-when-to-create-an-interface/5580400#5580400 http://stackoverflow.com/questions/3241333/ddd-address-as-an-aggregate-root/3244181#3244181 http://stackoverflow.com/questions/3964989/how-to-pass-current-user-information-to-all-layers-in-ddd/3969014#3969014 http://stackoverflow.com/questions/5484278/in-oop-if-objects-send-each-other-messages-wont-there-be-easily-an-infinite-l/5484369#5484369 http://stackoverflow.com/questions/3715625/how-to-identify-that-code-is-over-abstracted/3715934#3715934