Architectural layers and abstraction impedes imperative readability, since both hide the concrete implementation details.