moved #opposite to private