Going Beyond Object-Orientation for Operating Systems Design