first partially working solution