needs some types