added a bunch of appearance APIs

delegate method can be removed now