improved eror handling with callback and eventemitters