picky about a few errors. Good thing though, I'm not really sure why clang + osx let me be that lax with memory