basic version with node implemented