add visualization function