#23 extracted ArtifactScanner from ClassScanner