fixed factory signature