prep prototyping refactor