base compute methods implemented