The design and specification of new network protocols that aim at solving issues of currently deployed ones is a long, tedious process. It requires Internet-wide consensus and often leads to compromises. Although stable and interoperable implementations of protocols are part of the protocol specification process, new protocols suffer from another problem: acceptance and use by application developers. In order to solve this problem, we proposed NENA, a framework that aims at a better decoupling of applications and networks. It allows to run multiple network stacks in parallel, completely transparent to applications. In addition, it provides an implementation environment suitable for component-based protocols which offers ideal conditions for protocol composition approaches. In this paper, we describe aspects of our implementation that provide the necessary abstractions for NENA's goals: a protocol and network agnostic API relieving the application programmer from networking specific decisions, and a message passing system for component-based protocols with flow control capabilities that interact with flow control mechanisms of network protocols.