still doesn't work. self.out won't be updated