exposed opts through factory and renamed create method to log