public function apply($testable, array $config = array()) {
		$message = '{:name} has no declared visibility.';
		$tokens = $testable->tokens();
		$classes = $testable->findAll(array(T_CLASS));
		$filtered = $testable->findAll($this->inspectableTokens);

		foreach ($classes as $classId) {
			$children = $tokens[$classId]['children'];
			foreach ($children as $member) {
				if (!in_array($member, $filtered)) {
					continue;
				}
				$modifiers = Parser::modifiers($member, $tokens);
				$visibility = $testable->findNext($this->findTokens, $modifiers);
				if ($visibility === false) {
					$token = $tokens[$member];
					$this->addViolation(array(
						'modifiers' => $modifiers,
						'message' => String::insert($message, $token),
						'line' => $token['line'],
					));
				}
			}
		}
	}