add more docstrings
make ic? checking safer for other types