cleanup and improve oauth code & code structure before jump into the real shit