add factory for data