add fluent/functional approach