added random generators