working implementation for TV