Working on Function class, may add other classes later