Add ComponentMapper and tests, update README to reflect