add an apply method to the companion objects