pass off to delegate impl.
added some test impls
logging to help debugging