This isn't completed and it isn't error-proof.It still needs a lot to be completed.