factory helper methods