node constructor