Class Design for Search