Prybin data class task 4

This is likely to adopt all codereview feedback. It stages changes into 4 commits.