after solution 3 work in progress