Simple Factory Pattern.