solutions by johnkweber