added object factory