use CNode for real
further cleaning