added attributes to help function optimization