improved mapping functions...