#5 create window programmatically