don't use callable type hint for 5.3 compatibility