+ switched to modular architecture + added generic outputs
+ added defined code structure + started implementing generic outputs + added support for multiples windows + switched to frame-based architecture