manialink name attribute
updated PHPDoc @return to better support method chaining
maniacode base element as abstract class instead of interface