make Node.type_id field private, access through type_id()