splitting into moar classes