updated SmartTable constructor to allow main parameters to be private members and created setter and getter functions for main functionality
updated constructor logic