fixed cycle detection. the previous one was only suitable for trees not dags. preliminary update algorithm implementation.
make the update skip building missing targets when the sources final targets
are up to date. still deciding how to store target state