refactored GUI and Core components