factory method, HashMap<String, Object> constructor