more flexible visualization