Feature/factory rebase of #404