improve drawing performance
add DisplayListener