Adding everything in initial pass. Still need to debug it all.