updated for node 0.8+