added factory method to Stock; added orElseGet test