New User interface, most of the basic function works and some bug fixes
animal_limt field added to cage_tb to limit the number of animals assigned to a cage
change is design pattern