3 col works but hacky
3 col better - using calc
with calc refactored
debounce