forgot to unify function return types