Essential prototyping foundations for designers