added better errors and binding of caller gem