Solution ready. Needs code reduction