implement white and black list