initial code checkin from svn upstream