add static calculate method