deal with sub return