implemented static factory method