visual_o implementation with tests