moving to prototype pattern