allow override the initialize method