added more functionality, random #