change the mappings api to asynchronized version
move mappings into a separated folder