ver2 for code clean up