same as above, it should share the error handler