finished version 3.0