Added alot of changes
Added new files and architecture change