mapping prototype. BF run, it maybe have bug or error.