First rough implementation