Enterprise application design patterns : improved and applied