fix constructor bug
refactor text fonts
add a random method