dependency made optional