more flexible viewer drawing