refactored away static impl classes