Refactor to change name and improve interfaces