added better interface