work in progress - proper classes for props