Change GUI package pattern to abstract factory