Refactoring to build the super prototype