changes so far - by request. probably doesn't compile.