Leveraging the prototype pattern