fix #1 - use function bind to avoid self usage