gui controls factory