add some member and change constructor interfaces