minor revison, home stretch to version 1