recursive select try