First iteration

This is the first iteration I am satisfied with.