return consistent type