Initial commit, stuff isn't 100% yet.