don't implement datasource delegate for now
only proxy delegate if a delegate exists (wip)