added random methods