Initial commit. Already working in its intitial state. Needs more work.