Refactoring to prevent multithreaded issues.
Hiding public PAI that wasn't needed.
Refactoring to compile.
Stripping back code.
Removes _ from ivar.
Removes unneeded syncronisinc.
Makes things non atomic.
Restructuring code.
Removing asset based method.
Simplifies code.
Don't need the asset reader anymore.