fixed but implemented differently