added better functions