revamp to support .net 4.0