Visitor, Free – Registered, Paid Member, how best to set this up?

Here is my setup and membership process. I have one section that is protected for paid members. Since I want all of the site viewable except the one page I have setup under Options > User Membership Level > Visitors. I have no default use subscription level as this didn’t seem to work for me. I want to use the shortcodes for vistor, registered(anyone who signed up), paid member(someone who paid). So ideally I would have three levels, Visitor, Registered, Paid. Now I am trying to customize the website so that visitors get a login/register, Registered get a signup/pay, and Members get account/subscription info. Does anyone know how best to do this? I did setup a subscription level that was free and did a default setup under options to that level, but I have no way of them Upgrading to the Paid as in the subscription level I would have to specify when the FREE would expire and I wouldn’t want it to expire just give them the option to upgrade to PAID. I have banging my head on the keyboard trying to work this out with maybe custom shortcodes for logged in users but then I would need something to say if you are registered but not paid, display registered info and not the paid? Any help suggestion or directions. FYI, I am good with php coding and such so I have no problem getting into code to customize something. Thanks for any help.