changing names and adding new return type, not yet implemented