done refactor assert and type
saving work