use currying function to design fluent api.
implement init method on List.