add list(type, timeout, callback) function