Advanced Separation of Concerns in Agent-Oriented Design Patterns