added dependency loop detection & error handling
post_construct() handling implemented & tested