different approach and much more simple code