refactored volatile interface and implementation