white and black list refactor