Prototype refactored