First major update. Base functionality implemented.