not sure needs sep fn