optimize methods