Cleaned up, all functions (maybe) complete?