made several updated to features, see sub module commits