fix UIView extension to be general purpose