some member variables move to the private