Initial commit. What I have done on my own so far.