begin implementing select interface