add transparent painting
add resizing support
implement mouse and keyboard events