Reorganize source files as class definition
Support persistence layer and store data with uniquness timely