modified: compile with vs2008