versions implemented