Initial Commit

Still not fully rewritten