move functionality to CSS where possible