use protoclass instead of structr