requires node >= 0.8