add initial windowing support