updated my solution - not yet complete