version 2.0 with Static Methods