Application: Private constructor; use factory