fix bugs, add custom error example