abstraction and default appearance. removed unnecessary calls to invalidate