clean up, add comments, add more styling