Checklist for using the factory method pattern