public members are confusing