modified return type