added possibility to use a place holder instead of resolving circular references, similar to other implementations