This is going to require ALOT of updating from the me part...