test case edited
prototype pattern added