node functionality in separate module