adding revealing prototype pattern