Node implementation as a trait