More refactor; interface change; added //sb visible