filled in some TODOs, just need I/O and function calls tests