some methods became private