todo: We need tests