ALMOST EVERYTHING WORKS. NEED COMMENTS.