Object creation logic