proper windowing and so much more