At least semi-implemented every function and everything appears to compile