Working solution (w/o validation)