constructor workink