changed apply to explicit return type