First version with visual feedback