wrong on hover behaviour but otherwise good