factored out classes into own files
merge from pull

Merge branch 'feature/INTERFACES' of https://github.com/zatricion/NetSim into feature/INTERFACES