controller w/ exception handling