Initial Commit, not working 100% yet.