currently, most of the functions have a return type of `any`, and should be changed to fit their actual return types.