added direct purchase basic function