First rough version
resolve merge conflict