Bubble exceptions all the way up
refactored stuff
use go-try
removed taken-by?