Completely rewrote huge part of library to make code cleaner.
Each interface is now a separate object with it's own methods (functions).