add - constructor pattern