no async code, simplify clean code
simple api