Code

Updated, but still a lot of work to do