implements some aspects of MaterialDesign