fleshing out node implementation and docs