fix scope & positioning
add cache for text
fix tab/space