added better returning