Add explantion of Hexagonal Architecture by @fideloper