clean-architectures

Base functionality and abstractions for a clean architectures implementation