use octopus very same definition
consistent with octopus implementation
implicit implementation.. still quite slow