Initial commit. Will comment if it needs comments.