use resolve to smoothen experience