remove arbitrary casting by making source and target more precise