preliminary api completed, mapper modularization pending
added mapper, rewrote api with mapper functions