start building less mutable objects
set to S4 class in design, and support parallel computing in simulations