also, pass on the type checking imo