Added prototype pattern