change to not return Optional