Merged interface loader from refactor branch.
This will make things a lot easier for me