implemented two-tier approach for dependency resolution
simplified api and implemented suspending signals