implemented rock's rules