Cleaner version and addition of return type