changed to nodeify so error callback gets passed through