Refactor API to make it more clearer
Implement Mapping Algorith