Major cleanup
Added support for Authorization Code grant type