use power constructor