switch to prototype pattern