Commit barely working early alpha. All functions exist but needs work.