Many changes

Spent a few hours on this one today, it has more validation for user input.

There was a bug in user_version checking as well.

Thanks!