Initial commit

Working solution tested.