Added interface and Manager code

I had to make a few changes here and there but really only amounted to
moving where a variable was located. I didn't change any functionality
at all cuz were just that good and I didn't need too.