native constructor