idiomatic factory companion object usage jargon