use requre_once to avoid redeclare class issue