GUI: Add factory function