use chain method pattern when possible