Revamp the mapper table to class, for better scalability.
And improve constructor, to be more clean.
Sample use new constructor system