change: init and lock methods will be discarded after calling.
change: the attribute fields '.name' and '.attr' has moved to a '@' field.