added potential recursive sol'n