rename throw retrieval functions. add ability to get as type