tons of changes, error handling, logging, etc. probably full of bugs.