much better let scoping without wrapping functions #52 #49 #24