Refactored Sopremo building blocks to increase type safety #5