more refactoring pre class