fix little bug, and tried numerical shift encoder