extend painter interface