first working solution
first working solution merge