add module approach with chain of calls