divide api to blocking and non-blocking
add type aliases to prevent external lib import in client code
get container api call
refusing from polymorphic approach