clean code
clean call flow