fixed det function