using emit('error', error) for errors