data-prototype refactoring