add support for through keyword