base implementation as described in Issue #167 with no testing. [ciroque]