prototyping and testing