refactored out classes only used once